Personal tools
You are here: Home Open Source Documents Plone speedup branch
Document Actions

Plone speedup branch

by Christian Heimes last modified 2004-01-24 18:27

Preface

Geoff Davis did some major speed increases on plone 2 based on the work of Alan Runyan. I added some patches, the capabilities to refresh files from the filesystem in non debug mode (which wasn't possible before) and a special skin custom folder which does autofreshing after an object has been added, removed or altered.

How I benchmarked zope

I'm using:

  • Zope 2.7 CVS
  • Plone CVS (speedup-branch and 2_0-branch)
  • Python 2.3.3 (debian)
  • apache benchmark (ab) 1.3d
  • A P4 2.4GHz with 512 RAM and kernel 2.6 with debian testing as Zope server. I ran the tests under x because I was to lazy to stop all my programs
  • A P3 1GHz with 256RAM and kernel 2.6 with debian testing as benchmark host. This computer is connected with a 100Mbit/sec full duplex line to the Zope server.

All version where the newest available version in debian or cvs on 2004/01/13.

I created a fresh instance for each test and compacted the zodb after each test. After creating the site I ran ab several times to allow zope to cache the data in ram and psyco (if enabled) to profile the code. Psyco needs some time before the code is optimized.

I started apache benchmark with this options:

ab -n100 -c5 http://host:10080/testsite/index_html

Which means 100 reqest with 5 concurrent request at the same time.

Timing tests with apache brenchmark

Normal mode

Old branch:

Time taken for tests:   23.904 seconds

Percentage of the requests served within a certain time (ms)
  50%   1051
  66%   1261
  75%   1315
  80%   1355
  90%   1415
  95%   1503
  98%   2027
  99%   3824
 100%   6919 (last request)

Speedup without psyco:

Time taken for tests:   20.712 seconds

Percentage of the requests served within a certain time (ms)
  50%    943
  66%    989
  75%   1140
  80%   1307
  90%   1434
  95%   1484
  98%   1529
  99%   1582
 100%   1768 (last request)

Speedup with psyco:

Time taken for tests:   18.816 seconds

Percentage of the requests served within a certain time (ms)
  50%    857
  66%    952
  75%   1035
  80%   1124
  90%   1242
  95%   1320
  98%   1391
  99%   1416
 100%   1478 (last request)

Speedup with psyco and PYTHONOPTIMIZE=1:

Time taken for tests:   18.492 seconds

Percentage of the requests served within a certain time (ms)
  50%    847
  66%    961
  75%   1039
  80%   1080
  90%   1186
  95%   1302
  98%   1366
  99%   1372
 100%   1375 (last request)

Debug mode

Old branch:

Time taken for tests:   31.254 seconds


Percentage of the requests served within a certain time (ms)
  50%   1478
  66%   1581
  75%   1694
  80%   1837
  90%   2004
  95%   2055
  98%   2133
  99%   2140
 100%   2547 (last request)

Speedup with psyco and PYTHONOPTIMIZE=1:

Time taken for tests:   21.575 seconds

 Percentage of the requests served within a certain time (ms)
  50%    995
  66%   1076
  75%   1171
  80%   1199
  90%   1342
  95%   1394
  98%   1547
  99%   1604
 100%   1636 (last request)

Powered by Plone CMS, the Open Source Content Management System