Flask + Jinja2: как измерить выступления - PullRequest
3 голосов
/ 30 ноября 2011

Мне нужно сравнить производительность приложения Flask, которое использует 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))

спасибо!

1 Ответ

1 голос
/ 30 ноября 2011

Вам нужно посмотреть на системные часы до и после звонка.

Это проще сделать, если вы не сразу вернете ответ из 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...