Hey, [[ NUMBERS ARE BELOW ]]

It has been a while, but here's a new set of Hello World benchmarks!
What took me so long in getting these out is that the java web environments
that I had set up would keep crashing during the tests in ways that would
not only render their benchmarks meaningless, but also skewed the results
for other tests, say when a java thread would spin out of control!

You can download the latest benchmark suite to run on your system at:

  http://www.chamas.com/bench/hello.tar.gz

It seems to run on linux & solaris just fine, though the tests that
are run depend on what environments you have set up.  Please see the
distribution README on how to run the suite for yourself.

--Josh


METHODOLOGY: These latest numbers come from my running the pubbench.sh script:

  ]# cat pubbench.sh 
  #!/bin/bash

  ./bench.pl -version --ram --init-exec="perl javainit.pl -restart" -time=180 
--store=results
  perl ./javainit.pl -stop

The javainit.pl will kill any of my existing java environments, and if the current
test needs java will start them up.  The test run for 180 seconds total in 60 second 
batches, and for each 60 second run the javainit.pl script will be executed.  

The --ram flag attempts to calculate the RAM used by each test on my linux system 
during each 60 second test with the results averaged across each, so for applications 
with memory leaks, the RAM used only shows 60 seconds worth of them.  The RAM
calculation looks at RAM used & SWAP used from the linux /proc/meminfo file... as
it looks at RAM before the httpd is fired up, but after the init-exec script
executes, the RAM does not take into account the java web server environments 
being started, just memory usage that occurs after they start being used.

DISCLAIMER: These numbers are just that, numbers.  Please don't let them
upset you.  If you have a positive contribution that you would like to make, 
you may download the source code and submit patches ( preferably as diff -u )
to the test suite.  This benchmark suite has evolved over years of benchmarking, 
and takes the point of view that web environments can only be well compared when 
run on the exact same system configuration... this is why the suite is done 
is such a way that you can run it on _your_ system giving you results relevant
to you!

NUMBERS: And without further adieu ... ( see NOTES below )

Test Name                           Test File Hits/sec  # of Hits Time(sec) secs/Hit  
Bytes/Hit Mem(KB)   
---------                           --------- --------- --------- --------- --------- 
--------- --------- 
Apache::ASP v2.29 2000              h2000.asp  216.8     39042    180.09    0.004613  
28998     33632     
Apache::Registry v2.01 2000 mod_per h2000.reg  341.3     61442    180.04    0.002930  
28179     16081     
HTML::Embperl v1.3.0 2000           h2000.epl  113.2     20391    180.12    0.008833  
28841     20418     
HTML::Mason v1.03 2000              h2000.mas   84.0     15115    180.03    0.011911  
28799     112220    
HTML::Template v2.4 2000            h2000.htm   99.1     17848    180.03    0.010087  
29152     50292     
mod_caucho JSP 2000                 h2000.jsp   97.6     17617    180.54    0.010248  
28965     14057     
mod_jserv JSP 2000                  h2000.jsp  148.7     26773    180.04    0.006725  
29408     29613     
mod_php PHP 2000                    h2000.php  258.2     46477    180.02    0.003873  
28866     10212     
Template v2.04 Toolkit 2000         h2000.tt    53.3      9604    180.03    0.018745  
28889     55629     

Test Name                           Test File Hits/sec  # of Hits Time(sec) secs/Hit  
Bytes/Hit Mem(KB)   
---------                           --------- --------- --------- --------- --------- 
--------- --------- 
Apache::ASP v2.29                   hello.asp  349.8     62985    180.05    0.002859  
242       29601     
Apache::Dispatch v0.09 handler      hello/wor  585.8    105443    180.01    0.001707  
197       9205      
Apache::ePerl                       hello.epe  347.1     62508    180.08    0.002881  
218       17477     
Apache::Registry v2.01 CGI Raw      hello.cgi  677.7    122003    180.03    0.001476  
52        13061     
Apache::Registry v2.01 CGI.pm       hello.cgi  449.7     80967    180.05    0.002224  
217       20717     
Apache::SSI v2.16                   hello.sht  546.7     98426    180.03    0.001829  
200       13061     
CGI::SpeedyCGI CGI Raw              hello.scg  159.6     28722    180.00    0.006267  
197       9748      
CGI::SpeedyCGI CGI.pm               hello.scg  145.1     26117    180.01    0.006892  
217       10648     
HTML static                         hello.htm  879.2    150000    170.61    0.001137  
312       1982      
HTML::Embperl v1.3.0                hello.epl  463.6     83471    180.05    0.002157  
221       17333     
HTML::Mason v1.03                   hello.mas  368.5     66348    180.04    0.002714  
198       29009     
HTML::Template v2.4                 hello.htm  539.1     97056    180.03    0.001855  
199       14850     
mod_caucho JSP                      hello.jsp  147.6     26596    180.20    0.006775  
231       14442     
mod_cgi CGI Raw                     hello.cgi  156.7     28208    180.02    0.006382  
197       9506      
mod_cgi CGI.pm                      hello.cgi   11.1      2040    183.53    0.089966  
217       25893     
mod_include SSI                     hello.sht  241.8     43605    180.36    0.004136  
199       4297      
mod_jserv JSP                       hello.jsp   73.1     13209    180.81    0.013688  
358       10788     
mod_perl handler                    hello.ben  813.8    146490    180.00    0.001229  
197       5420      
mod_php PHP                         hello.php  687.5    123753    180.00    0.001455  
226       6008      
Template v2.04 Toolkit              hello.tt   469.2     84470    180.02    0.002131  
199       42472     

Test Name                           Test File Hits/sec  # of Hits Time(sec) secs/Hit  
Bytes/Hit Mem(KB)   
---------                           --------- --------- --------- --------- --------- 
--------- --------- 
Apache::ASP v2.29 XSLT Hello        hxslt.xml  185.0     33292    180.00    0.005407  
292       39892     
AxKit v1.4 XSLT Hello               hxslt.xml  298.2     53678    180.03    0.003354  
411       30622     
Cocoon 1.8 mod_jserv XSLT Hello     hxslt.xml   56.1     10144    180.80    0.017823  
507       15784     

Test Name                           Test File Hits/sec  # of Hits Time(sec) secs/Hit  
Bytes/Hit Mem(KB)   
---------                           --------- --------- --------- --------- --------- 
--------- --------- 
Apache::ASP v2.29 XSLT Big          hxsltbig.  138.6     24957    180.03    0.007214  
21521     50572     
AxKit v1.4 XSLT Big                 hxsltbig.  262.1     47206    180.08    0.003815  
21859     31390     
Cocoon 1.8 mod_jserv XSLT Big       hxsltbig.   79.2      9525    120.25    0.012625  
21921     29116     

Apache Server Header Tokens
---------------------------
(Unix)
Apache/1.3.20
AxKit/1.4
OpenSSL/0.9.6a
PHP/4.0.3pl1
Resin/1.2.1
mod_perl/1.25
mod_ssl/2.8.4
tomcat/1.0

PERL Version: 5.00503

JAVA Version: java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0)
Classic VM (build 1.3.0, J2RE 1.3.0 IBM build cx130-20001124 (JIT enabled: jitc))

Operating System: Linux 2.2.14-9.0 (root@gate) (gcc egcs-2.91.66) #1 2CPU [gate.]

NOTES:

h2000.epl - Embperl 2.0 is much faster on this test, about the same speed as PHP,
but its not installable from CPAN which is why I don't run it.  When the release
stablizes ( from alpha/beta release ), I will run 2.0 for this test.

h2000.mas - HTML::Mason seems to have a memory leak on this test where it does not
seem to have it on the hello.mas.  If someone has a patch for the benchmark
to fix this memory leak which would be consistent with ordinary Mason programming
methods, please submit it.  If there is a real memory leak under Mason 
for this test, then perhaps this test will help the authors fix it?

h2000.jsp - mod_jserv beats mod_caucho on this test, but results flip flop for
hello.jsp.  I am not sure why this is.  The java environments tend to benchmark
unpredicatably, even for longer tests.  This may be a standard result though
and would not surprise me.

HTML Static - Static HTML should generally be much faster than any other test, but is
only slightly faster than mod_perl on my system.  This is likely because 
my box is a dual processor 450 PIII running Linux 2.2.14 ( Redhat 6.2 ),
and this version of linux does not deal efficiently with many processors.  
I imagine a benchmark on a 2.4.x linux kernel on this platform would show 
more of a difference.

Cocoon 1.8 mod_jserv XSLT Big - This test only ran for 120 seconds, instead
of 180 that all the other tests ran for.  This is because of the 3 60 seconds
test, the java process core dumped on one of them, so we only have 120 seconds
worth of data.  Also, why this test performs better than the Cocoon hxslt.xml,
I have no idea.

AxKit & Apache::ASP XSLT tests - These tests used XML::Sablotron, though they
could have used XML::LibXSLT.  For these tests it does not matter, because
the transformation ends up being cached to disk anyway.

Apache::ASP v2.29 XSLT Big - This test uses a lot of memory.  This is likely
due to Apache::ASP treating XSLT XML data & XSL templates as ASP scripts,
which involves first compiling them to perl bytecode, prior to execution
and final XSLT rendering of their output.  This will likely be fixed in
later releases by Apache::ASP detecting at runtime when files are 
static & don't have <% %> ASP code blocks, allow it to bypass the 
perl bytecode compilation process, which will help particularly for
static XSLT scenarios.

Reply via email to