質問

使用するフラスコアプリケーションのパフォーマンスを比較する必要があります jinja2.Template.render に対して jinja2.Template.stream テンプレートのストリーミングを使用してパフォーマンスの損失がないことを確認してください。

私の(非常に簡単な)アイデアは、テンプレートのレンダリングの前後にタイムスタンプを印刷することでしたが、Webページは関数によって返されるため、これを実装する方法がよくわかりません...

私の機能は次のとおりです。

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からすぐに応答を返さないと、これを行う方が簡単です。

つまり:

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