Колба + Jinja2: как измерить выступления
-
26-10-2019 - |
Вопрос
Мне нужно сравнить характеристики приложения для колбы, которое использует jinja2.Template.render
против jinja2.Template.stream
Чтобы быть уверенным, что нет потери производительности, используя потоковую передачу шаблонов.
Моя (очень простая) идея состояла в том, чтобы напечатать метку времени до и после рендеринга шаблона, но, поскольку веб -страница возвращается функцией, я не совсем уверен, как это реализовать ...
Моя функция:
def index():
"""main function"""
env = Environment(loader=FileSystemLoader(basedir+'templates'))
#I modify the global variables
env.globals['foo'] = 'bar'
env.globals['build_response']=build_response
get_url = request.args.get('to_print', None)
message = "the input was \"%s\"" % (get_url,)
template = env.get_template('body.html')
return Response(template.stream(message=message))
#return template.render(message=message)
И мне нужно измерить время, проведенное
return template.render(message=message)
против
return Response(template.stream(message=message))
Благодарность!
Решение
Вам нужно посмотреть на системные часы до и после вызова.
Это проще сделать, если вы не сразу вернете ответ из Template.Render или Template.Stream.
Т.е.:
from time import time
def index():
# THE REST OF YOUR CODE GOES HERE
start = time.time()
resp = template.render(message=message)
end = time.time()
processing_time = end - start
# LOG PROCESSING TIME SOMEPLACE
return resp
Не связан с StackOverflow