Loading ...
Sorry, an error occurred while loading the content.

4702[Cheetahtemplate-discuss] [PATCH] Remove unnecessary dir()/set() calls in Template.__init__()

Expand Messages
  • R. Tyler Ballance
    Oct 12, 2009
    • 0 Attachment
      When running cheetah.Tests.Performance.DynamicMethodCompilationTest
      with 100000 iterations set, Template.__init__() is the most performance
      sensitive call.

      Prior to this commit:
      ncalls tottime percall cumtime percall filename:lineno(function)
      100000 12.558 0.000 15.274 0.000 Template.py:1025(__init__)

      After this commit:
      ncalls tottime percall cumtime percall filename:lineno(function)
      100000 1.263 0.000 3.541 0.000 Template.py:1025(__init__)

      That code need not execute every time __init__ is called
      ---
      cheetah/Template.py | 5 ++---
      1 files changed, 2 insertions(+), 3 deletions(-)

      diff --git a/cheetah/Template.py b/cheetah/Template.py
      index 01cf676..c903460 100644
      --- a/cheetah/Template.py
      +++ b/cheetah/Template.py
      @@ -1213,11 +1213,10 @@ class Template(Servlet):
      ##################################################
      ## Setup instance state attributes used during the life of template
      ## post-compile
      - reserved_searchlist = dir(self)
      if searchList:
      for namespace in searchList:
      if isinstance(namespace, dict):
      - intersection = set(reserved_searchlist) & set(namespace.keys())
      + intersection = Reserved_SearchList & set(namespace.keys())
      warn = False
      if intersection:
      warn = True
      @@ -1832,7 +1831,7 @@ class Template(Servlet):
      return dic

      T = Template # Short and sweet for debugging at the >>> prompt.
      -
      +Reserved_SearchList = set(dir(Template))

      def genParserErrorFromPythonException(source, file, generatedPyCode, exception):

      --
      1.6.5
    • Show all 4 messages in this topic