• Victor Stinner's avatar
    bpo-30156: Remove property_descr_get() optimization (GH-9541) · e972c136
    Victor Stinner yazdı
    property_descr_get() uses a "cached" tuple to optimize function
    calls. But this tuple can be discovered in debug mode with
    sys.getobjects(). Remove the optimization, it's not really worth it
    and it causes 3 different crashes last years.
    
    Microbenchmark:
    
    ./python -m perf timeit -v \
        -s "from collections import namedtuple; P = namedtuple('P', 'x y'); p = P(1, 2)" \
        --duplicate 1024 "p.x"
    
    Result:
    
    Mean +- std dev: [ref] 32.8 ns +- 0.8 ns -> [patch] 40.4 ns +- 1.3 ns: 1.23x slower (+23%)
    e972c136
Adı
Son kayıt (commit)
Son güncelleme
..
clinic Loading commit data...
stringlib Loading commit data...
README Loading commit data...
abstract.c Loading commit data...
accu.c Loading commit data...
boolobject.c Loading commit data...
bytearrayobject.c Loading commit data...
bytes_methods.c Loading commit data...
bytesobject.c Loading commit data...
call.c Loading commit data...
capsule.c Loading commit data...
cellobject.c Loading commit data...
classobject.c Loading commit data...
codeobject.c Loading commit data...
complexobject.c Loading commit data...
descrobject.c Loading commit data...
dict-common.h Loading commit data...
dictnotes.txt Loading commit data...
dictobject.c Loading commit data...
enumobject.c Loading commit data...
exceptions.c Loading commit data...
fileobject.c Loading commit data...
floatobject.c Loading commit data...
frameobject.c Loading commit data...
funcobject.c Loading commit data...
genobject.c Loading commit data...
iterobject.c Loading commit data...
listobject.c Loading commit data...
listsort.txt Loading commit data...
lnotab_notes.txt Loading commit data...
longobject.c Loading commit data...
memoryobject.c Loading commit data...
methodobject.c Loading commit data...
moduleobject.c Loading commit data...
namespaceobject.c Loading commit data...
object.c Loading commit data...
obmalloc.c Loading commit data...
odictobject.c Loading commit data...
rangeobject.c Loading commit data...
setobject.c Loading commit data...
sliceobject.c Loading commit data...
structseq.c Loading commit data...
tupleobject.c Loading commit data...
typeobject.c Loading commit data...
typeslots.inc Loading commit data...
typeslots.py Loading commit data...
unicodectype.c Loading commit data...
unicodeobject.c Loading commit data...
unicodetype_db.h Loading commit data...
weakrefobject.c Loading commit data...