]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Improve template execution performance. 343/head
authorWojciech Polak <wojciechpolak@gmail.com>
Thu, 25 Aug 2011 15:29:32 +0000 (17:29 +0200)
committerWojciech Polak <wojciechpolak@gmail.com>
Thu, 25 Aug 2011 15:50:22 +0000 (17:50 +0200)
tornado/template.py

index 4a88999eda30a0f7d54c9d00e30c1b273d2251e4..db4305b44e55282f3d95100a4cc2ab3b09e23f7c 100644 (file)
@@ -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):