Better method name.  Tighten inner-loop with bound methods.
diff --git a/Lib/functools.py b/Lib/functools.py
index f9e35d8..11843b7 100644
--- a/Lib/functools.py
+++ b/Lib/functools.py
@@ -128,6 +128,7 @@
     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 @@
             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 @@
                     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():