From af520f637dc66d0ffb9e70289e8bf2e400618b12 Mon Sep 17 00:00:00 2001 From: Wojciech Polak Date: Thu, 25 Aug 2011 17:29:32 +0200 Subject: [PATCH] Improve template execution performance. --- tornado/template.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tornado/template.py b/tornado/template.py index 4a88999ed..db4305b44 100644 --- a/tornado/template.py +++ b/tornado/template.py @@ -284,6 +284,7 @@ class _File(_Node): writer.write_line("def _execute():") with writer.indent(): writer.write_line("_buffer = []") + writer.write_line("_append = _buffer.append") self.body.generate(writer) writer.write_line("return _utf8('').join(_buffer)") @@ -361,9 +362,10 @@ class _ApplyBlock(_Node): writer.write_line("def %s():" % method_name) with writer.indent(): writer.write_line("_buffer = []") + writer.write_line("_append = _buffer.append") self.body.generate(writer) writer.write_line("return _utf8('').join(_buffer)") - writer.write_line("_buffer.append(%s(%s()))" % ( + writer.write_line("_append(%s(%s()))" % ( self.method, method_name)) @@ -412,7 +414,7 @@ class _Expression(_Node): # so we have to convert to utf8 again. writer.write_line("_tmp = _utf8(%s(_tmp))" % writer.current_template.autoescape) - writer.write_line("_buffer.append(_tmp)") + writer.write_line("_append(_tmp)") class _Module(_Expression): def __init__(self, expression): @@ -434,7 +436,7 @@ class _Text(_Node): value = re.sub(r"(\s*\n\s*)", "\n", value) if value: - writer.write_line('_buffer.append(%r)' % escape.utf8(value)) + writer.write_line('_append(%r)' % escape.utf8(value)) class ParseError(Exception): -- 2.47.2