1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174
|
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
<html>
<head>
<title>Benchmarks - comparisons between mod_dtcl and other systems</title>
</head>
<body bgcolor="#ffffff">
<center>
<h1>
Benchmarks - comparisons between mod_dtcl and PHP
</h1>
</center>
<p>
These are just some rough tests I did using 'ab', the Apache
Benchmark program.
</p>
<p>
My methodology was as follows:<br>
I ran
</p>
<code>
./ab -c 4 -z "bgcolor=#aaaaaa" -w -n 1000
http://freddy/~davidw/benchmark/bm.php3 >
public_html/php.html<br>
./ab -c 4 -z "bgcolor=#aaaaaa" -w -n 1000
http://freddy/~davidw/benchmark/bm.ttml >
public_html/dtcl.html<br>
</code>
<b>*</b>The ab (ApacheBench) program used was from the
development apache tree - to be able to output HTML, I had to add in this
functionality myself:-)<p>
Where the two pieces of code are the following:<p>
<pre>
<?
echo "<table>\n";
for ($a = 1; $a <= 16; $a ++)
{
echo "<tr>\n";
for ($b = 1; $b <= 16; $b ++)
{
$num = $a * $b - 1;
printf("<td bgcolor=%2x%2x%2x>%2x %2x %2x</td>\n", $num, $num, $num, $num, $num, $num );
}
echo "</tr>\n";
}
echo "</table>\n";
?>
And
<+
hputs "<table>\n"
for { set a 1 } { $a <= 16 } {incr a } {
hputs "<tr>\n"
for { set b 1 } { $b <= 16 } {incr b } {
set num [ expr $a * $b - 1 ]
hputs [ format "<td bgcolor=%2x%2x%2x>%2x %2x %2x</td>\n" $num $num $num $num $num $num ]
}
hputs "</tr>\n"
}
hputs "</table>\n"
+>
</pre>
These are the results:
<p>
<p>
This is ApacheBench, Version 1.3<br>
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/<br>
Copyright (c) 1998-1999 The Apache Group, http://www.apache.org/<br>
</p>
<p>
<!-- top of php3 -->
<table >
<tr ><th colspan=2 bgcolor=#aaaaaa>Server Software:</th><td colspan=2 bgcolor=#aaaaaa>Apache/1.3.3</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Server Hostname:</th><td colspan=2 bgcolor=#aaaaaa>freddy</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Server Port:</th><td colspan=2 bgcolor=#aaaaaa>80</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Document Path:</th><td colspan=2 bgcolor=#aaaaaa>/~davidw/benchmark/bm.php3</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Document Length:</th><td colspan=2 bgcolor=#aaaaaa>8641 bytes</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Concurrency Level:</th><td colspan=2 bgcolor=#aaaaaa>4</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Time taken for tests:</th><td colspan=2 bgcolor=#aaaaaa>73.507 seconds</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Complete requests:</th><td colspan=2 bgcolor=#aaaaaa>1000</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Failed requests:</th><td colspan=2 bgcolor=#aaaaaa>0</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Total transferred:</th><td colspan=2 bgcolor=#aaaaaa>8824188 bytes</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>HTML transferred:</th><td colspan=2 bgcolor=#aaaaaa>8658693 bytes</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Requests per second:</th><td colspan=2 bgcolor=#aaaaaa>13.60</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Transfer rate:</th><td colspan=2 bgcolor=#aaaaaa>120.05 kb/s received</td></tr>
<tr ><th bgcolor=#aaaaaa colspan=4>Connnection Times (ms)</th></tr>
<tr ><th bgcolor=#aaaaaa> </th> <th bgcolor=#aaaaaa>min</th> <th bgcolor=#aaaaaa>avg</th> <th bgcolor=#aaaaaa>max</th></tr>
<tr ><th bgcolor=#aaaaaa>Connect:</th><td bgcolor=#aaaaaa> 0</td><td bgcolor=#aaaaaa> 0</td><td bgcolor=#aaaaaa> 34</td></tr>
<tr ><th bgcolor=#aaaaaa>Processing:</th><td bgcolor=#aaaaaa> 71</td><td bgcolor=#aaaaaa> 292</td><td bgcolor=#aaaaaa> 1194</td></tr>
<tr ><th bgcolor=#aaaaaa>Total:</th><td bgcolor=#aaaaaa> 71</td><td bgcolor=#aaaaaa> 292</td><td bgcolor=#aaaaaa> 1228</td></tr>
</table>
<hr>
<!-- break between php3 and ttml -->
<p>
<table >
<tr ><th colspan=2 bgcolor=#aaaaaa>Server Software:</th><td colspan=2 bgcolor=#aaaaaa>Apache/1.3.3</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Server Hostname:</th><td colspan=2 bgcolor=#aaaaaa>freddy</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Server Port:</th><td colspan=2 bgcolor=#aaaaaa>80</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Document Path:</th><td colspan=2 bgcolor=#aaaaaa>/~davidw/benchmark/bm.ttml</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Document Length:</th><td colspan=2 bgcolor=#aaaaaa>8642 bytes</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Concurrency Level:</th><td colspan=2 bgcolor=#aaaaaa>4</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Time taken for tests:</th><td colspan=2 bgcolor=#aaaaaa>32.802 seconds</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Complete requests:</th><td colspan=2 bgcolor=#aaaaaa>1000</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Failed requests:</th><td colspan=2 bgcolor=#aaaaaa>0</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Total transferred:</th><td colspan=2 bgcolor=#aaaaaa>8820811 bytes</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>HTML transferred:</th><td colspan=2 bgcolor=#aaaaaa>8655316 bytes</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Requests per second:</th><td colspan=2 bgcolor=#aaaaaa>30.49</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Transfer rate:</th><td colspan=2 bgcolor=#aaaaaa>268.91 kb/s received</td></tr>
<tr ><th bgcolor=#aaaaaa colspan=4>Connnection Times (ms)</th></tr>
<tr ><th bgcolor=#aaaaaa> </th> <th bgcolor=#aaaaaa>min</th> <th bgcolor=#aaaaaa>avg</th> <th bgcolor=#aaaaaa>max</th></tr>
<tr ><th bgcolor=#aaaaaa>Connect:</th><td bgcolor=#aaaaaa> 0</td><td bgcolor=#aaaaaa> 0</td><td bgcolor=#aaaaaa> 16</td></tr>
<tr ><th bgcolor=#aaaaaa>Processing:</th><td bgcolor=#aaaaaa> 32</td><td bgcolor=#aaaaaa> 129</td><td bgcolor=#aaaaaa> 1025</td></tr>
<tr ><th bgcolor=#aaaaaa>Total:</th><td bgcolor=#aaaaaa> 32</td><td bgcolor=#aaaaaa> 129</td><td bgcolor=#aaaaaa> 1041</td></tr>
</table>
<!-- bottom of ttml -->
<hr>
For reference purposes, <a href="table.html">table.html</a>
(which is what both scripts produce), was tested for comparison.
<p>
<code>
@chimchim [~] $ ./ab -w -n 1000 http://freddy/~davidw/table.html<br>
</code>
Which produced:<p>
<table >
<tr ><th colspan=2 bgcolor=#aaaaaa>Server Software:</th> <td colspan=2 bgcolor=#aaaaaa>Apache/1.3.3</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Server Hostname:</th> <td colspan=2 bgcolor=#aaaaaa>freddy</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Server Port:</th> <td colspan=2 bgcolor=#aaaaaa>80</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Document Path:</th> <td colspan=2 bgcolor=#aaaaaa>/~davidw/table.html</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Document Length:</th> <td colspan=2 bgcolor=#aaaaaa>8642 bytes</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Concurrency Level:</th> <td colspan=2 bgcolor=#aaaaaa>4</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Time taken for tests:</th> <td colspan=2 bgcolor=#aaaaaa>12.743 seconds</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Complete requests:</th> <td colspan=2 bgcolor=#aaaaaa>1000</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Failed requests:</th> <td colspan=2 bgcolor=#aaaaaa>0</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Total transferred:</th> <td colspan=2 bgcolor=#aaaaaa>8931840 bytes</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>HTML transferred:</th> <td colspan=2 bgcolor=#aaaaaa>8647272 bytes</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Requests per second:</th> <td colspan=2 bgcolor=#aaaaaa>78.47</td></tr>
<tr ><th colspan=2 bgcolor=#aaaaaa>Transfer rate:</th> <td colspan=2 bgcolor=#aaaaaa>700.92 kb/s received</td></tr>
<tr ><th bgcolor=#aaaaaa colspan=4>Connnection Times (ms)</th></tr>
<tr ><th bgcolor=#aaaaaa> </th> <th bgcolor=#aaaaaa>min</th> <th bgcolor=#aaaaaa>avg</th> <th bgcolor=#aaaaaa>max</th></tr>
<tr ><th bgcolor=#aaaaaa>Connect:</th> <td bgcolor=#aaaaaa> 0</td> <td bgcolor=#aaaaaa> 4</td> <td bgcolor=#aaaaaa> 36</td></tr>
<tr ><th bgcolor=#aaaaaa>Processing:</th> <td bgcolor=#aaaaaa> 26</td> <td bgcolor=#aaaaaa> 46</td> <td bgcolor=#aaaaaa> 604</td></tr>
<tr ><th bgcolor=#aaaaaa>Total:</th> <td bgcolor=#aaaaaa> 26</td> <td bgcolor=#aaaaaa> 50</td> <td bgcolor=#aaaaaa> 640</td></tr>
</table>
<hr>
Chimchim is a Debian GNU/Linux box running Debian 2.0.<br>
Freddy is a Debian GNU/Linux box running pre-Debian 2.1, Apache
1.3.3, mod_dtcl 0.5.0, and PHP 3.0.5, both loaded
dynamically.<br>
Both are sitting on my home network, connected by 10 base-t ethernet.
<p>
I realize that these tests probably aren't very accurate. If
you would like to furnish me with more precise, controlled
tests, I would be appreciative. Or at least detail exactly
how one might perform tests that could be labeled accurate
within some margin of error.
</p>
<p>
<a href="index.html">Return to the mod_dtcl homepage</a>
</p>
</body>
</html>
|