烧瓶 + 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)
vs
return Response(template.stream(message=message))
谢谢!
解决方案
您需要查看通话前后的系统时钟。
如果您不立即从template.render或template.stream返回响应,则更容易执行此操作。
IE:
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