This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vstinner
Recipients orent, rhettinger, serhiy.storchaka, vstinner
Date 2018-09-24.15:52:54
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>
PR 9541: my new attempt to remove the micro-optimization. Commit message:

bpo-30156: Remove property_descr_get() optimization

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.


./python -m perf timeit -v \
    -s "from collections import namedtuple; P = namedtuple('P', 'x y'); p = P(1, 2)" \
    --duplicate 1024 "p.x"


Mean +- std dev: [ref] 32.8 ns +- 0.8 ns -> [patch] 40.4 ns +- 1.3 ns: 1.23x slower (+23%)
Date User Action Args
2018-09-24 15:52:54vstinnersetrecipients: + vstinner, rhettinger, orent, serhiy.storchaka
2018-09-24 15:52:54vstinnersetmessageid: <>
2018-09-24 15:52:54vstinnerlinkissue30156 messages
2018-09-24 15:52:54vstinnercreate