]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Better method name. Tighten inner-loop with bound methods.
authorRaymond Hettinger <python@rcn.com>
Thu, 2 Sep 2010 19:56:28 +0000 (19:56 +0000)
committerRaymond Hettinger <python@rcn.com>
Thu, 2 Sep 2010 19:56:28 +0000 (19:56 +0000)
Lib/collections.py
Lib/functools.py

index fb6766e2a54ea385340f35ee006672daa782a6d5..c3c51d120fa0f03aaedf08a951c11b22945668a8 100644 (file)
@@ -173,7 +173,7 @@ class OrderedDict(dict, MutableMapping):
     def __del__(self):
         self.clear()                # eliminate cyclical references
 
-    def _move_to_end(self, key, PREV=0, NEXT=1):
+    def _renew(self, key, PREV=0, NEXT=1):
         'Fast version of self[key]=self.pop(key).   Private method for internal use.'
         link = self.__map[key]
         link_prev = link[PREV]
index f9e35d857ab44088a4f3317046487620736295a9..11843b72ca2c3c65f3589932372132b1953e2b80 100644 (file)
@@ -128,6 +128,7 @@ def lru_cache(maxsize=100):
     def decorating_function(user_function, tuple=tuple, sorted=sorted,
                             len=len, KeyError=KeyError):
         cache = OrderedDict()           # ordered least recent to most recent
+        cache_popitem, cache_renew = cache.popitem, cache._renew
         kwd_mark = object()             # separate positional and keyword args
         lock = Lock()
 
@@ -139,7 +140,7 @@ def lru_cache(maxsize=100):
             try:
                 with lock:
                     result = cache[key]
-                    cache._move_to_end(key)     # record recent use of this key
+                    cache_renew(key)            # record recent use of this key
                     wrapper.hits += 1
             except KeyError:
                 result = user_function(*args, **kwds)
@@ -147,7 +148,7 @@ def lru_cache(maxsize=100):
                     cache[key] = result         # record recent use of this key
                     wrapper.misses += 1
                     if len(cache) > maxsize:
-                        cache.popitem(0)        # purge least recently used cache entry
+                        cache_popitem(0)        # purge least recently used cache entry
             return result
 
         def clear():