• Andrew MacIntyre's avatar
    Performance of list([]) in 2.3 came up in a thread on comp.lang.python, · d57caed5
    Andrew MacIntyre yazdı
    which can be reviewed via
    http://coding.derkeiler.com/Archive/Python/comp.lang.python/2003-12/1011.html
    
    Duncan Booth investigated, and discovered that an "optimisation" was
    in fact a pessimisation for small numbers of elements in a source list,
    compared to not having the optimisation, although with large numbers
    of elements in the source list the optimisation was quite beneficial.
    
    He posted his change to comp.lang.python (but not to SF).
    
    Further research has confirmed his assessment that the optimisation only
    becomes a net win when the source list has more than 100 elements.
    
    I also found that the optimisation could apply to tuples as well,
    but the gains only arrive with source tuples larger than about 320
    elements and are nowhere near as significant as the gains with lists,
    (~95% gain @ 10000 elements for lists, ~20% gain @ 10000 elements for
    tuples) so I haven't proceeded with this.
    
    The code as it was applied the optimisation to list subclasses as
    well, and this also appears to be a net loss for all reasonable sized
    sources (~80-100% for up to 100 elements, ~20% for more than 500
    elements; I tested up to 10000 elements).
    
    Duncan also suggested special casing empty lists, which I've extended
    to all empty sequences.
    
    On the basis that list_fill() is only ever called with a list for the
    result argument, testing for the source being the destination has
    now happens before testing source types.
    d57caed5
Adı
Son kayıt (commit)
Son güncelleme
Demo Loading commit data...
Doc Loading commit data...
Grammar Loading commit data...
Include Loading commit data...
Lib Loading commit data...
Mac Loading commit data...
Misc Loading commit data...
Modules Loading commit data...
Objects Loading commit data...
PC Loading commit data...
PCbuild Loading commit data...
Parser Loading commit data...
Python Loading commit data...
RISCOS Loading commit data...
Tools Loading commit data...
.cvsignore Loading commit data...
.hgtags Loading commit data...
LICENSE Loading commit data...
Makefile.pre.in Loading commit data...
README Loading commit data...
aclocal.m4 Loading commit data...
configure Loading commit data...
configure.in Loading commit data...
install-sh Loading commit data...
pyconfig.h.in Loading commit data...
setup.py Loading commit data...