Вопрос

Мне нужно сравнить характеристики приложения для колбы, которое использует 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top