• Raymond Hettinger's avatar
    Dictionary optimizations: · 43442782
    Raymond Hettinger authored
    * Factored constant structure references out of the inner loops for
      PyDict_Next(), dict_keys(), dict_values(), and dict_items().
      Gave measurable speedups to each (the improvement varies depending
      on the sparseness of the dictionary being measured).
    
    * Added a freelist scheme styled after that for tuples.  Saves around
      80% of the calls to malloc and free.  About 10% of the time, the
      previous dictionary was completely empty; in those cases, the
      dictionary initialization with memset() can be skipped.
    43442782
dictobject.c 53 KB