Message149486
| Author |
Mark.Shannon |
| Recipients |
Mark.Shannon, Trundle, amaury.forgeotdarc, benjamin.peterson, davide.rizzo, ezio.melotti, orsenthil, pitrou, python-dev, vstinner |
| Date |
2011年12月15日.00:10:07 |
| SpamBayes Score |
7.916623e-09 |
| Marked as misclassified |
No |
| Message-id |
<1323907808.06.0.237430871161.issue12149@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
Please reopen this bug as the fix is wrong.
This fix merely hides the symptoms of _PyType_Lookup returning a dead object, by calling PyType_Modified() frequently, thus ensuring the type method cache is almost always invalidated.
This results in a significant slow down in pystones (~4%) due to a large slowdown (~60%) in _PyType_Lookup.
I don't know what the root cause is, but it could be:
A failure to call PyType_Modified() at the correct point (probably somewhere in iobase.c)
or it could be:
Deallocation not conforming to topographical ordering (ie. instance first then class), due to a cycle involving a borrowed reference.
(Or it could be something else) |
|