• Raymond Hettinger's avatar
    Refactor list_extend() and list_fill() for gains in code size, memory · 90a39bf1
    Raymond Hettinger yazdı
    utilization, and speed:
    
    * Moved the responsibility for emptying the previous list from list_fill
      to list_init.
    
    * Replaced the code in list_extend with the superior code from list_fill.
    
    * Eliminated list_fill.
    
    Results:
    
    * list.extend() no longer creates an intermediate tuple except to handle
      the special case of x.extend(x).  The saves memory and time.
    
    * list.extend(x) runs
        5 to 10% faster when x is a list or tuple
        15% faster when x is an iterable not defining __len__
        twice as fast when x is an iterable defining __len__
    
    * the code is about 15 lines shorter and no longer duplicates
      functionality.
    90a39bf1
Adı
Son kayıt (commit)
Son güncelleme
..
.cvsignore Loading commit data...
abstract.c Loading commit data...
boolobject.c Loading commit data...
bufferobject.c Loading commit data...
cellobject.c Loading commit data...
classobject.c Loading commit data...
cobject.c Loading commit data...
complexobject.c Loading commit data...
descrobject.c Loading commit data...
dictnotes.txt Loading commit data...
dictobject.c Loading commit data...
enumobject.c Loading commit data...
fileobject.c Loading commit data...
floatobject.c Loading commit data...
frameobject.c Loading commit data...
funcobject.c Loading commit data...
intobject.c Loading commit data...
iterobject.c Loading commit data...
listobject.c Loading commit data...
listsort.txt Loading commit data...
longobject.c Loading commit data...
methodobject.c Loading commit data...
moduleobject.c Loading commit data...
object.c Loading commit data...
obmalloc.c Loading commit data...
rangeobject.c Loading commit data...
setobject.c Loading commit data...
sliceobject.c Loading commit data...
stringobject.c Loading commit data...
structseq.c Loading commit data...
tupleobject.c Loading commit data...
typeobject.c Loading commit data...
unicodectype.c Loading commit data...
unicodeobject.c Loading commit data...
unicodetype_db.h Loading commit data...
weakrefobject.c Loading commit data...