Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.conf import settings
- settings.configure()
- import timeit
- ITERS = 10**3
- REPEATS = 3
- jinja2_setup = """
- import jinja2
- def jinja2_loader(name):
- print '(jinja2) loading template', name
- if name == "i":
- return " "
- elif name == "include":
- return r'{% for i in range_ %}{% include "i" %}{% endfor %}'
- elif name == "noop":
- return "{% for i in range_ %} {% endfor %}"
- env = jinja2.Environment(loader=jinja2.FunctionLoader(jinja2_loader))
- t_noop = env.get_template("noop")
- t_include = env.get_template("include")
- context = {'range_': range(50)}
- """
- django_setup = """
- import django
- from django import template
- from django.conf import settings
- from django.test.utils import setup_test_template_loader, restore_template_loaders
- from django.template import loader, Context
- if hasattr(loader, '_original_template_source_loaders'):
- restore_template_loaders()
- #settings.configure()
- #django.setup()
- templates = {
- 'i': template.Template(r' '),
- 'noop': template.Template(r'{% for i in range_ %} {% endfor %}'),
- 'include': template.Template(r'{% for i in range_ %}{% include "i" %}{% endfor %}'),
- }
- setup_test_template_loader(templates, use_cached_loader=True)
- t_noop = loader.get_template('noop')
- t_include = loader.get_template('include')
- context = Context({'range_': range(50)})
- """
- def p(name, times):
- print '%-28s %8.3fs (%.3f %.3f %.3f)' % ((name, min(times)) + tuple(times))
- jinja2_noop_time = timeit.repeat("t_noop.render(context)", jinja2_setup, repeat=REPEATS, number=ITERS)
- jinja2_include_time = timeit.repeat("t_include.render(context)", jinja2_setup, repeat=REPEATS, number=ITERS)
- django_noop_time = timeit.repeat("t_noop.render(context)", django_setup, repeat=REPEATS, number=ITERS)
- django_include_time = timeit.repeat("t_include.render(context)", django_setup, repeat=REPEATS, number=ITERS)
- p('jinja2 empty for', jinja2_noop_time)
- p('jinja2 include', jinja2_include_time)
- p('django empty for', django_noop_time)
- p('django include', django_include_time)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement