Skip to content

Instantly share code, notes, and snippets.

@pibi
Created July 15, 2011 08:10
Show Gist options
  • Save pibi/1084298 to your computer and use it in GitHub Desktop.
Save pibi/1084298 to your computer and use it in GitHub Desktop.
GWAN C Servlet Pages Cache
$ curl http://192.168.11.150:8080/csp/httpdate
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><html lang="en"><head><title>Benchmarking function calls (with CPU clock cycles)</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link href="imgs/style.css" rel="stylesheet" type="text/css"></head><body><h1>Benchmarking function calls (with CPU clock cycles)</h1><br>Linux clib calls: Fri, 15 Jul 2011 08:03:10 GMT<br><br><table class="clean" width=160px><tr><th>function</th><th>time</th></tr><tr class="d0"><td>Linux clib calls</td><td>1323</td></tr><tr class="d1"><td>Linux clib calls</td><td>1336</td></tr><tr class="d0"><td>Linux clib calls</td><td>1336</td></tr><tr class="d1"><td>Linux clib calls</td><td>1301</td></tr><tr class="d0"><td>Linux clib calls</td><td>1301</td></tr><tr class="d1"><td>Linux clib calls</td><td>1308</td></tr><tr class="d0"><td>Linux clib calls</td><td>1301</td></tr><tr class="d1"><td>Linux clib calls</td><td>1301</td></tr><tr class="d0"><td>Linux clib calls</td><td>1301</td></tr><tr class="d1"><td>Linux clib calls</td><td>1301</td></tr></table><br>G-WAN time2rfc(): Fri, 15 Jul 2011 08:03:10 GMT<br><br><table class="clean" width=160px><tr><th>function</th><th>time</th></tr><tr class="d0"><td>G-WAN time2rfc()</td><td>175</td></tr><tr class="d1"><td>G-WAN time2rfc()</td><td>156</td></tr><tr class="d0"><td>G-WAN time2rfc()</td><td>159</td></tr><tr class="d1"><td>G-WAN time2rfc()</td><td>159</td></tr><tr class="d0"><td>G-WAN time2rfc()</td><td>159</td></tr><tr class="d1"><td>G-WAN time2rfc()</td><td>159</td></tr><tr class="d0"><td>G-WAN time2rfc()</td><td>159</td></tr><tr class="d1"><td>G-WAN time2rfc()</td><td>159</td></tr><tr class="d0"><td>G-WAN time2rfc()</td><td>159</td></tr><tr class="d1"><td>G-WAN time2rfc()</td><td>159</td></tr></table><br><table class="clean" width=440px><tr><th>function</th><th>max</th><th>average</th><th>min</th></tr><tr class="d1"><td>Linux clib calls</td><td>1336</td><td>1310</td><td>1301</td><tr class="d0"><td>G-WAN time2rfc()</td><td>175</td><td>160</td><td>156</td></tr></tr></table><table class="clean" width=440px><tr><th>G-WAN's code scaled <font color=#f0f000>8.19</font> times better</th></tr></table><br></body></html>
$ ab -n 200 -c 200 http://127.0.0.1:8080/csp/httpdate
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 127.0.0.1 (be patient)
Completed 100 requests
Completed 200 requests
Finished 200 requests
Server Software: G-WAN/2.1.20
Server Hostname: 127.0.0.1
Server Port: 8080
Document Path: /csp/httpdate
Document Length: 2184 bytes
Concurrency Level: 200
Time taken for tests: 0.260 seconds
Complete requests: 200
Failed requests: 0
Write errors: 0
Total transferred: 502600 bytes
HTML transferred: 436800 bytes
Requests per second: 769.23 [#/sec] (mean)
Time per request: 260.000 [ms] (mean)
Time per request: 1.300 [ms] (mean, across all concurrent requests)
Transfer rate: 1887.77 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 10 17 4.7 20 20
Processing: 30 159 63.6 170 240
Waiting: 20 159 63.9 170 240
Total: 40 176 67.4 190 260
Percentage of the requests served within a certain time (ms)
50% 190
66% 200
75% 250
80% 250
90% 250
95% 260
98% 260
99% 260
100% 260 (longest request)
$ curl http://192.168.11.150:8080/csp/httpdate
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><html lang="en"><head><title>Benchmarking function calls (with CPU clock cycles)</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link href="imgs/style.css" rel="stylesheet" type="text/css"></head><body><h1>Benchmarking function calls (with CPU clock cycles)</h1><br>Linux clib calls: Fri, 15 Jul 2011 08:03:35 GMT<br><br><table class="clean" width=160px><tr><th>function</th><th>time</th></tr><tr class="d0"><td>Linux clib calls</td><td>1283</td></tr><tr class="d1"><td>Linux clib calls</td><td>1275</td></tr><tr class="d0"><td>Linux clib calls</td><td>1272</td></tr><tr class="d1"><td>Linux clib calls</td><td>1272</td></tr><tr class="d0"><td>Linux clib calls</td><td>1272</td></tr><tr class="d1"><td>Linux clib calls</td><td>1272</td></tr><tr class="d0"><td>Linux clib calls</td><td>1272</td></tr><tr class="d1"><td>Linux clib calls</td><td>1272</td></tr><tr class="d0"><td>Linux clib calls</td><td>1272</td></tr><tr class="d1"><td>Linux clib calls</td><td>1272</td></tr></table><br>G-WAN time2rfc(): Fri, 15 Jul 2011 08:03:35 GMT<br><br><table class="clean" width=160px><tr><th>function</th><th>time</th></tr><tr class="d0"><td>G-WAN time2rfc()</td><td>145</td></tr><tr class="d1"><td>G-WAN time2rfc()</td><td>145</td></tr><tr class="d0"><td>G-WAN time2rfc()</td><td>145</td></tr><tr class="d1"><td>G-WAN time2rfc()</td><td>145</td></tr><tr class="d0"><td>G-WAN time2rfc()</td><td>145</td></tr><tr class="d1"><td>G-WAN time2rfc()</td><td>145</td></tr><tr class="d0"><td>G-WAN time2rfc()</td><td>145</td></tr><tr class="d1"><td>G-WAN time2rfc()</td><td>145</td></tr><tr class="d0"><td>G-WAN time2rfc()</td><td>145</td></tr><tr class="d1"><td>G-WAN time2rfc()</td><td>145</td></tr></table><br><table class="clean" width=440px><tr><th>function</th><th>max</th><th>average</th><th>min</th></tr><tr class="d1"><td>Linux clib calls</td><td>1283</td><td>1273</td><td>1272</td><tr class="d0"><td>G-WAN time2rfc()</td><td>145</td><td>145</td><td>145</td></tr></tr></table><table class="clean" width=440px><tr><th>G-WAN's code scaled <font color=#f0f000>8.78</font> times better</th></tr></table><br></body></html>
$ date
Fri Jul 15 10:05:33 CEST 2011
$ curl http://192.168.11.150:8080/csp/httpdate
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><html lang="en"><head><title>Benchmarking function calls (with CPU clock cycles)</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link href="imgs/style.css" rel="stylesheet" type="text/css"></head><body><h1>Benchmarking function calls (with CPU clock cycles)</h1><br>Linux clib calls: Fri, 15 Jul 2011 08:03:35 GMT<br><br><table class="clean" width=160px><tr><th>function</th><th>time</th></tr><tr class="d0"><td>Linux clib calls</td><td>1283</td></tr><tr class="d1"><td>Linux clib calls</td><td>1275</td></tr><tr class="d0"><td>Linux clib calls</td><td>1272</td></tr><tr class="d1"><td>Linux clib calls</td><td>1272</td></tr><tr class="d0"><td>Linux clib calls</td><td>1272</td></tr><tr class="d1"><td>Linux clib calls</td><td>1272</td></tr><tr class="d0"><td>Linux clib calls</td><td>1272</td></tr><tr class="d1"><td>Linux clib calls</td><td>1272</td></tr><tr class="d0"><td>Linux clib calls</td><td>1272</td></tr><tr class="d1"><td>Linux clib calls</td><td>1272</td></tr></table><br>G-WAN time2rfc(): Fri, 15 Jul 2011 08:03:35 GMT<br><br><table class="clean" width=160px><tr><th>function</th><th>time</th></tr><tr class="d0"><td>G-WAN time2rfc()</td><td>145</td></tr><tr class="d1"><td>G-WAN time2rfc()</td><td>145</td></tr><tr class="d0"><td>G-WAN time2rfc()</td><td>145</td></tr><tr class="d1"><td>G-WAN time2rfc()</td><td>145</td></tr><tr class="d0"><td>G-WAN time2rfc()</td><td>145</td></tr><tr class="d1"><td>G-WAN time2rfc()</td><td>145</td></tr><tr class="d0"><td>G-WAN time2rfc()</td><td>145</td></tr><tr class="d1"><td>G-WAN time2rfc()</td><td>145</td></tr><tr class="d0"><td>G-WAN time2rfc()</td><td>145</td></tr><tr class="d1"><td>G-WAN time2rfc()</td><td>145</td></tr></table><br><table class="clean" width=440px><tr><th>function</th><th>max</th><th>average</th><th>min</th></tr><tr class="d1"><td>Linux clib calls</td><td>1283</td><td>1273</td><td>1272</td><tr class="d0"><td>G-WAN time2rfc()</td><td>145</td><td>145</td><td>145</td></tr></tr></table><table class="clean" width=440px><tr><th>G-WAN's code scaled <font color=#f0f000>8.78</font> times better</th></tr></table><br></body></html>
@G-WAN
Copy link

G-WAN commented Mar 8, 2012

G-WAN is an event-based multithreaded server.

AB is a single-threaded client (so it can't saturate G-WAN).

To test more than a CPU Core, use a multithreaded client like weighttp, see:

http://gwan.ch/en_apachebench_httperf.html#weighttp

Hope it helps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment