On Sat, May 5, 2012 at 7:56 PM, Ronan Lamy <
ronan...@gmail.com> wrote:
> Le samedi 05 mai 2012 à 12:56 -0600, Aaron Meurer a écrit :
>> I'm not sure about this. If you try commenting out the empty
>> __slots__ definition for AtomicExpr, for example, the core tests take
>> almost twice as long (41 seconds for me vs. 25 in master). It's not
>> clear why, though. Commenting out the __slots__ in Basic, which is
>> the only one that I know of that is non-empty, makes the tests take 28
>> seconds, and commenting out the empty __slots__ for Expr makes them
>> take 38 seconds.
>
> When I remove __slots__, I don't see any meaningful difference. Either
> something's very different between Mac and Ubuntu, or your timings are
> bogus. Considering that they are very erratic, I guess it's the latter.
I think perhaps the test in test_args that searches through all files
may be messing up the timings. So I temporarily removed that file.
Even so, I get variations of up to 20 seconds even in master, so it's
hard to say. I ran the core tests (./bin/test core) in master three
times, and got 29.00, 42.10, and 27.13 seconds. I commented out
__slots__ for AtomicExpr and ran the core tests three times and got
55.91, 48.94, and 39.44. So I don't know. There definitely seems to
be a pattern of no __slots__ being slower. The gross variations on my
computer are probably due to the fact that I have more than a dozen
other programs running at the same time, and the fact that my hard
disk is slow enough to make a huge difference whether the data happens
to be in memory or not.
I wish we had a working benchmark system (and not just a working one,
but one with up-to-date benchmarks). Comparing timings of tests
doesn't seem very helpful. Can you suggest something that might take
more time without __slots__ that I can test?
And as I asked on the other thread, is there a good reason to not have
__slots__? It's just one line, and since they are all empty, it
doesn't really seem to cause any issues. (sorry if I've asked this
before, I forgot the answer)
Aaron Meurer