[plt-scheme] A Quick, Unscientific Benchmark

From: Doug Williams (m.douglas.williams at gmail.com)
Date: Sat Jan 5 14:05:34 EST 2008

I did some timing runs for the science collection for V372 versus V3.99.0.9.
This is totally unscientific, so take it for what is meant for - a quick

First, I ran an ordinary differential equation solver example from the
science collection.  This is numerically intensive (which should benefit
from the JIT flonum inlining).  It also uses the PLoT package.  The run
times are fairly short (so I expect more variance) and I ran it 10 times for
both V372 and V3.99.0.9.  The raw numbers are shown below and a simple
analysis (using averages from the raw numbers) are at the end.  The bottom
line is a 21% speedup in cpu time, an 18% speedup in real time, and a 40%
speedup in GC time.  Speedups were computed as (V372 - V3.99.0.9) / V372 *

Next, I removed the graphics and added a loop to run the ODE solver 100
time.  Using the same methodology (but with 5 runs each) gave a 28% speedup
in cpu time, a 31% speedup in real time, and a 46% speedup in GC time.  The
first run for is significantly faster than the others (seemingly
due to the lower GC time),  This wasn't seen in any of the others.  [I
probably should have ignored the first run for all of them.]

There was also a recurrence of the old problem of an occasional negative cpu
time reading from the time function.  I left the output in the raw numbers
so you could see it, but didn't use it in the analysis.  I thought this had
been fixed a long time ago, but I may be mistaken.

So, V3.99.0.9 does seem to be noticeably faster and I was pleasantly
surprised that the science collection runs without change on V3.99.0.9.  I
know I won't be as lucky for my other collections - I'm one of those
heretics that uses (gasp) set-cdr! at times :).

ode-example-2.ss w/graphics

cpu time: 2450 real time: 2607 gc time: 810
cpu time: 2028 real time: 2054 gc time: 204
cpu time: 2511 real time: 2582 gc time: 859
cpu time: 2043 real time: 2052 gc time: 250
cpu time: 1950 real time: 2019 gc time: 264
cpu time: 2402 real time: 2398 gc time: 624
cpu time: 1950 real time: 1995 gc time: 294
cpu time: 1965 real time: 2047 gc time: 232
cpu time: 1997 real time: 2064 gc time: 312
cpu time: 2371 real time: 2501 gc time: 654

cpu time: 1794 real time: 1906 gc time: 343
cpu time: 1841 real time: 1936 gc time: 358
cpu time: 1528 real time: 1645 gc time: 125
cpu time: 1825 real time: 2003 gc time: 373
cpu time: 1654 real time: 1866 gc time: 281
cpu time: 1669 real time: 1693 gc time: 156
cpu time: 1497 real time: 1618 gc time: 142
cpu time: 1919 real time: 2065 gc time: 452
cpu time: 1810 real time: 1862 gc time: 328
cpu time: 1623 real time: 1728 gc time: 124

No graphics, ode solver 100 times

cpu time: 105862 real time: 113963 gc time: 28193
cpu time: 104614 real time: 113527 gc time: 28263
cpu time: 104583 real time: 113608 gc time: 28120
cpu time: 104474 real time: 113784 gc time: 28520
cpu time: -324632 real time: 113562 gc time: 28054 - our old -time friend is
cpu time: 104942 real time: 113705 gc time: 28254

cpu time: 71761 real time: 78887 gc time: 15009
cpu time: 76440 real time: 78641 gc time: 15415
cpu time: 75302 real time: 78292 gc time: 15162
cpu time: 76518 real time: 78341 gc time: 15693
cpu time: 76831 real time: 78569 gc time: 15557

--- Analysis ---

ode-example-2.ss w/graphics
V372:      cpu time: 2167.7 real time: 2231.9 gc time: 450.3
V3.99.0.9: cpu time: 1716.0 real time: 1832.2 gc time: 268.2
Speedup:   cpu time: 21%    real time: 18%    gc time: 40%   (V372-V3.99.0.9

No graphics, ode solver 100 times
V372:      cpu time: 104895.0 real time: 113717.4 gc time: 28270.0
V3.99.0.9: cpu time:  75370.4 real time:  78546.0 gc time: 15367.2
Speedup:   cpu time: 28%      real time: 31%      gc time: 46%     (

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20080105/5191b8b7/attachment.html>

Posted on the users mailing list.