[Python-Dev] Speed of test_sort.py

Guido van Rossum guido@python.org
Thu, 01 Aug 2002 12:14:25 -0400

[Tim, in python-checkins]
> Bizarre:  this takes 11x longer to run if and only if test_longexp is
> run before it, on my box.  The bigger REPS is in test_longexp, the
> slower this gets.  What happens on your box?  It's not gc on my box
> (which is good, because gc isn't a plausible candidate here).
> The slowdown is massive in the parts of test_sort that implicitly
> invoke a new-style class's __lt__ or __cmp__ methods.  If I boost
> REPS large enough in test_longexp, even the test_sort tests on an array
> of size 64 visibly c-r-a-w-l.  The relative slowdown is even worse in
> a debug build.  And if I reduce REPS in test_longexp, the slowdown in
> test_sort goes away.
> test_longexp does do horrid things to Win98's management of user
> address space, but I thought I had made that a whole lot better a month
> or so ago (by overallocating aggressively in the parser).

It's about the same on my Linux box (system time is CPU time spent in
the kernel):

test_longexp alone takes 1.92 user + 0.22 system seconds.
test_sort alone takes 1.71 user + 0.01 system seconds.
test_sort + test_longexp takes 3.62 user + 0.18 system seconds.
test_longexp + test_sort takes 38.05 user and 0.34 system seconds!!!

I'll see if I can get this to run under a profiler.

--Guido van Rossum (home page: http://www.python.org/~guido/)