[Python-Dev] Silly little benchmark
Neil Schemenauer
nas@python.ca
Fri, 13 Jul 2001 05:38:40 -0700
Jeremy Hylton wrote:
> The big change is the coercion work being done in binary_op1(), which
> tries to turn strings into numbers in a variety of ways. BINARY_ADD
> calls PyNumber_Add(), which calls binary_op1(). When the binary_op1()
> calls fails, it then tries sequence concatenation.
>
> If it were possible for binary_op1() to fail quickly for non-numeric
> sequences like strings, we would not see the slowdown for small string
> operations. (I believe that's what the silly little benchmark shows
> and what one of the pybench tests shows.)
I had a patch that did this:
* Added an ordinal number to some builtin types. All other types
had ordinal 0.
* Built a 2-D table of binary methods.
* Had operations like PyNumber_Add look into this table and use the
method there.
It turned out to not give much of a speedup but I think the idea is
interesting.
Neil