User class binary ops seem too slow (was re: GIL detector)

Steven D'Aprano steve at pearwood.info
Mon Aug 18 03:32:18 EDT 2014


On Mon, 18 Aug 2014 00:43:58 -0400, Terry Reedy wrote:

>  >>> timeit.repeat('1+1')
> [0.04067762117549266, 0.019206152658126363, 0.018796680446902643]

I think you have been tripped up by the keyhole optimizer. I'm not 
entirely certain, but that's probably just measuring the overhead of 
evaluating the constant 2. Same applies to your other "constant + 
constant" tests.

This is in Python 3.3, and is suggestive:

py> bc = compile('1+1', '', 'exec')
py> from dis import dis
py> dis(bc)
  1           0 LOAD_CONST               2 (2) 
              3 POP_TOP              
              4 LOAD_CONST               1 (None) 
              7 RETURN_VALUE         



-- 
Steven



More information about the Python-list mailing list