[Zope] Pystones & Zope Performance

Matthew T. Kromer matt@zope.com
Fri, 05 Apr 2002 15:18:49 -0500


For all concerned:

Pystones are an excellent predictor of Zope performance.  The pystone 
program is typically located in $PYTHONPATH/tests/pystone.py -- you run 
this with your favorite version of Python to get an indicator of how 
fast your particular system can process Python instructions.

Here's a few sample systems I use, all using Python 2.1 as a benchmark 
python:

Intel Celeron 400:            4651    pystones [11.63 * Mhz]
UltraSPARC IIe 500:           5556    pystones [11.11 * Mhz]
Intel Celeron 500:            5714    pystones [11.43 * Mhz]
PowerPC G4 500:               6289    pystones [12.58 * Mhz]
Intel Celeron 500:            6849    pystones [13.69 * Mhz] (optimized 
Python)
Intel Pentium III 1Ghz:      12048    pystones [12.05 * Mhz]
AMD Athlon XP 2000+:         25756    pystones [15.67 * Mhz, 12.88 * 
Rating] (ActiveState python)

Note that this isn't a very highly scientific sampling; I haven't done 
lots of averaging and smoothing and data washing, etc.  Pystones are 
pretty closely tied to clock speed (duh!) but are perturbed by CPU and 
compiler.  I tend to accept a figure of roughly 12 * Mhz as a fairly 
accurate predictor of Python performance.

Zope, being an enormous Python program, is highly sensitive to how fast 
Python can interpret.  Thus, you'll find that Zope speeds scale up with 
CPU speeds.

It is probably worth pointing out that the architecture of the CPU isn't 
nearly as dominant as its clock speed; a UltraSPARC or a PowerPC G4 does 
not perform much differently than a Pentium or Athlon.

It also shows (for you Athlon fans out there) that the Athlon marketing 
number is fairly accurate with respect to the equivalent Intel 
performance, i.e. Athlons get about 22% more work done per clock than a 
Pentium III -- I don't have any Pentium IVs around to test with.

I doubt any of this is earth shattering news.  The primary conclusion I 
would draw from this is that you want to optimize clock rate over any 
other factor for good Zope performance.  When considering fitting Zope 
to various vendor hardware, consider the cost per cycle; SPARC suffers 
here considerably.

-- 
Matt Kromer
Zope Corporation  http://www.zope.com/