我需要比较使用的烧瓶应用程序的性能 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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top