[Python-Dev] Who cares about the performance of these opcodes? (original) (raw)

Michael Hudson mwh at python.net
Wed Mar 10 06:03:56 EST 2004


Greg Ewing <greg at cosc.canterbury.ac.nz> writes:

"Phillip J. Eby" <pje at telecommunity.com>:

If the goal is to remove lines from the switch statement, just move the code of lesser-used opcodes into a C function. There's no need to eliminate the opcodes themselves. Naively, one might think that, if the code is rarely used, even if it's inside the switch, it'll rarely be in the cache and thus wouldn't make much difference.

I'm not sure that's so much the issue. It would be bad if (say) the top of the switch and the LOAD_FAST opcode were in i-cache conflict, and it's probably crap like this that accounts for the random-seeming performance fluctuations as you tinker with eval_frame.

But I suspect the cacheing issues are more subtle than just the total amount of code in the switch statement, and the only way to be sure is to measure.

on multiple architectures with multiple compilers, etc, etc.

Chees, mwh

-- You can lead an idiot to knowledge but you cannot make him think. You can, however, rectally insert the information, printed on stone tablets, using a sharpened poker. -- Nicolai -- http://home.xnet.com/~raven/Sysadmin/ASR.Quotes.html



More information about the Python-Dev mailing list