[Python-Dev] eval() slowdown in 2.2 on MacOS X?
Skip Montanaro
skip@pobox.com
Thu, 10 Jan 2002 15:12:31 -0600
>> BTW, I forgot to pass this on yesterday, but I tried the code in Tim
>> Peters' e-mail yesterday and the delay happens during the code =
>> compile(...) statement.
I saw the same effect on my Linux laptop (with a mere 128MB). The disk went
nuts when it tried compiling
"[" + "2," * 200000 + "]"
VM size as reported by top went to 98.5MB. This does not appear to be
exclusively a 2.2 issue, as I got this with the fresh 2.1.2 I built this
morning.
If you consider what this compiles to:
LOAD_CONST 1 (2)
LOAD_CONST 1 (2)
LOAD_CONST 1 (2)
LOAD_CONST 1 (2)
...
LOAD_CONST 1 (2)
LOAD_CONST 1 (2)
LOAD_CONST 1 (2)
LOAD_CONST 1 (2)
BUILD_LIST 200000
To generate that it has to generate and parse a pretty deep abstract syntax
tree. It looks like symtable_node gets called once for each list element.
There are probably other functions that are called once per list element as
well.
Skip