Permalink
Browse files

enhancement + fix + new bench

  • Loading branch information...
1 parent d4103eb commit 01c23cea60cd399dab8dd043cb67db51ff874917 @stefanocasazza committed Aug 31, 2011
Showing with 8,743 additions and 6,389 deletions.
  1. +4 −1 Makefile.am
  2. +4 −1 Makefile.in
  3. +11 −10 README.LZO
  4. +215 −0 README.html
  5. +133 −56 README.md
  6. +1 −1 configure
  7. +1 −1 configure.in
  8. BIN doc/benchmark/bench.ods
  9. +30 −16 doc/benchmark/bin/bench1.c
  10. +22 −17 doc/benchmark/bin/csp.sh
  11. +16 −13 doc/benchmark/bin/nginx.sh
  12. +24 −17 doc/benchmark/bin/usp.sh
  13. +46 −0 doc/benchmark/current/gwan/2.1.20/gwan.log
  14. +3 −0 doc/benchmark/current/gwan/2.1.20/localhost/csp_NO_keepalive.csv
  15. +5 −0 doc/benchmark/current/gwan/2.1.20/localhost/csp_keepalive.csv
  16. +102 −0 doc/benchmark/current/gwan/2.1.20/localhost/gwan_1000_NO_keepalive.csv
  17. +102 −0 doc/benchmark/current/gwan/2.1.20/localhost/gwan_1000_keepalive.csv
  18. +102 −0 doc/benchmark/current/gwan/2.1.20/localhost/gwan_100_NO_keepalive.csv
  19. +102 −0 doc/benchmark/current/gwan/2.1.20/localhost/gwan_100_keepalive.csv
  20. +3 −0 doc/benchmark/current/gwan/2.1.20/localhost/gwan_big_NO_keepalive.csv
  21. +3 −0 doc/benchmark/current/gwan/2.1.20/localhost/gwan_big_keepalive.csv
  22. +102 −0 doc/benchmark/current/gwan/2.1.20/stefano/csp_NO_keepalive.csv
  23. +102 −0 doc/benchmark/current/gwan/2.1.20/stefano/csp_keepalive.csv
  24. +102 −0 doc/benchmark/current/gwan/2.1.20/stefano/gwan_1000_NO_keepalive.csv
  25. +102 −0 doc/benchmark/current/gwan/2.1.20/stefano/gwan_1000_keepalive.csv
  26. +102 −0 doc/benchmark/current/gwan/2.1.20/stefano/gwan_100_NO_keepalive.csv
  27. +102 −0 doc/benchmark/current/gwan/2.1.20/stefano/gwan_100_keepalive.csv
  28. +89 −0 doc/benchmark/current/gwan/2.1.20/stefano/gwan_big_NO_keepalive.csv
  29. +102 −0 doc/benchmark/current/gwan/2.1.20/stefano/gwan_big_keepalive.csv
  30. +57 −0 doc/benchmark/current/gwan/2.8/gwan.log
  31. +102 −0 doc/benchmark/current/gwan/2.8/localhost/gwan_1000_NO_keepalive.csv
  32. +102 −0 doc/benchmark/current/gwan/2.8/localhost/gwan_1000_keepalive.csv
  33. +102 −0 doc/benchmark/current/gwan/2.8/localhost/gwan_100_NO_keepalive.csv
  34. +102 −0 doc/benchmark/current/gwan/2.8/localhost/gwan_100_keepalive.csv
  35. +102 −0 doc/benchmark/current/gwan/2.8/localhost/gwan_big_NO_keepalive.csv
  36. +102 −0 doc/benchmark/current/gwan/2.8/localhost/gwan_big_keepalive.csv
  37. +102 −0 doc/benchmark/current/gwan/2.8/stefano/csp_keepalive.csv
  38. +102 −0 doc/benchmark/current/gwan/2.8/stefano/gwan_1000_NO_keepalive.csv
  39. +102 −0 doc/benchmark/current/gwan/2.8/stefano/gwan_1000_keepalive.csv
  40. +102 −0 doc/benchmark/current/gwan/2.8/stefano/gwan_100_NO_keepalive.csv
  41. +102 −0 doc/benchmark/current/gwan/2.8/stefano/gwan_100_keepalive.csv
  42. +102 −0 doc/benchmark/current/nginx/localhost/nginx_1000_NO_keepalive.csv
  43. +102 −0 doc/benchmark/current/nginx/localhost/nginx_1000_keepalive.csv
  44. +102 −0 doc/benchmark/current/nginx/localhost/nginx_100_NO_keepalive.csv
  45. +102 −0 doc/benchmark/current/nginx/localhost/nginx_100_keepalive.csv
  46. +102 −0 doc/benchmark/current/nginx/localhost/nginx_big_NO_keepalive.csv
  47. +102 −0 doc/benchmark/current/nginx/localhost/nginx_big_keepalive.csv
  48. +3 −0 doc/benchmark/current/nginx/nginx.ver
  49. +102 −0 doc/benchmark/current/nginx/stefano/nginx_1000_NO_keepalive.csv
  50. +102 −0 doc/benchmark/current/nginx/stefano/nginx_1000_keepalive.csv
  51. +102 −0 doc/benchmark/current/nginx/stefano/nginx_100_NO_keepalive.csv
  52. +102 −0 doc/benchmark/current/nginx/stefano/nginx_100_keepalive.csv
  53. +102 −0 doc/benchmark/current/nginx/stefano/nginx_big_NO_keepalive.csv
  54. +102 −0 doc/benchmark/current/nginx/stefano/nginx_big_keepalive.csv
  55. +102 −0 doc/benchmark/current/userver_tcp/localhost/userver_tcp_1000_NO_keepalive.csv
  56. +102 −0 doc/benchmark/current/userver_tcp/localhost/userver_tcp_1000_keepalive.csv
  57. +102 −0 doc/benchmark/current/userver_tcp/localhost/userver_tcp_100_NO_keepalive.csv
  58. +102 −0 doc/benchmark/current/userver_tcp/localhost/userver_tcp_100_keepalive.csv
  59. +102 −0 doc/benchmark/current/userver_tcp/localhost/userver_tcp_big_NO_keepalive.csv
  60. +102 −0 doc/benchmark/current/userver_tcp/localhost/userver_tcp_big_keepalive.csv
  61. +102 −0 doc/benchmark/current/userver_tcp/localhost/usp_NO_keepalive.csv
  62. +102 −0 doc/benchmark/current/userver_tcp/localhost/usp_keepalive.csv
  63. +102 −0 doc/benchmark/current/userver_tcp/stefano/userver_tcp_1000_NO_keepalive.csv
  64. +102 −0 doc/benchmark/current/userver_tcp/stefano/userver_tcp_1000_keepalive.csv
  65. +102 −0 doc/benchmark/current/userver_tcp/stefano/userver_tcp_100_NO_keepalive.csv
  66. +102 −0 doc/benchmark/current/userver_tcp/stefano/userver_tcp_100_keepalive.csv
  67. +102 −0 doc/benchmark/current/userver_tcp/stefano/userver_tcp_big_NO_keepalive.csv
  68. +102 −0 doc/benchmark/current/userver_tcp/stefano/userver_tcp_big_keepalive.csv
  69. +102 −0 doc/benchmark/current/userver_tcp/stefano/usp_NO_keepalive.csv
  70. +102 −0 doc/benchmark/current/userver_tcp/stefano/usp_keepalive.csv
  71. +53 −0 doc/benchmark/current/userver_tcp/userver_tcp.ver
  72. +0 −102 doc/benchmark/gwan/csp_NO_keepalive.csv
  73. +0 −102 doc/benchmark/gwan/csp_keepalive.csv
  74. +0 −47 doc/benchmark/gwan/gwan.log
  75. +0 −102 doc/benchmark/gwan/gwan_1000_NO_keepalive.csv
  76. +0 −102 doc/benchmark/gwan/gwan_1000_keepalive.csv
  77. +0 −102 doc/benchmark/gwan/gwan_100_NO_keepalive.csv
  78. +0 −102 doc/benchmark/gwan/gwan_100_keepalive.csv
  79. +0 −102 doc/benchmark/gwan/gwan_big_NO_keepalive.csv
  80. +0 −4 doc/benchmark/gwan/gwan_big_keepalive.csv
  81. BIN doc/benchmark/img/localhost_keep_alive.png
  82. BIN doc/benchmark/img/localhost_no_keep_alive.png
  83. BIN doc/benchmark/img/net_keep_alive.png
  84. BIN doc/benchmark/img/net_no_keep_alive.png
  85. +0 −3 doc/benchmark/linuxinfo.txt
  86. +0 −53 doc/benchmark/userver_tcp/userver_tcp.ver
  87. +0 −102 doc/benchmark/userver_tcp/userver_tcp_1000_NO_keepalive.csv
  88. +0 −102 doc/benchmark/userver_tcp/userver_tcp_1000_keepalive.csv
  89. +0 −102 doc/benchmark/userver_tcp/userver_tcp_100_NO_keepalive.csv
  90. +0 −102 doc/benchmark/userver_tcp/userver_tcp_100_keepalive.csv
  91. +0 −102 doc/benchmark/userver_tcp/userver_tcp_big_NO_keepalive.csv
  92. +0 −102 doc/benchmark/userver_tcp/userver_tcp_big_keepalive.csv
  93. +0 −102 doc/benchmark/userver_tcp/usp_NO_keepalive.csv
  94. +0 −102 doc/benchmark/userver_tcp/usp_keepalive.csv
  95. +2 −1 examples/userver/userver.cfg.default
  96. +1 −1 examples/workflow/action.cpp
  97. +4 −3 include/ulib/base/base.h
  98. +32 −5 include/ulib/base/lzo/lzoconf.h
  99. +2 −1 include/ulib/base/lzo/lzodefs.h
  100. +2 −1 include/ulib/base/lzo/minilzo.h
  101. +5 −0 include/ulib/base/macro.h
  102. +4 −0 include/ulib/base/utility.h
  103. +101 −78 include/ulib/container/gen_hash_map.h
  104. +1 −1 include/ulib/debug/objectDB.h
  105. +11 −13 include/ulib/event/event_fd.h
  106. +2 −1 include/ulib/internal/common.h
  107. +3 −3 include/ulib/internal/memory_pool.h
  108. +28 −28 include/ulib/libevent/event.h
  109. +7 −7 include/ulib/net/client/ftp.h
  110. +1 −1 include/ulib/net/client/imap.h
  111. +1 −1 include/ulib/net/client/pop3.h
  112. +2 −2 include/ulib/net/client/smtp.h
  113. +5 −9 include/ulib/net/server/client_image.h
  114. +9 −1 include/ulib/net/server/plugin/mod_http.h
  115. +17 −10 include/ulib/net/server/server.h
  116. +1 −1 include/ulib/net/server/server_rdb.h
  117. +1 −1 include/ulib/net/socket.h
  118. +53 −48 include/ulib/notifier.h
  119. +4 −0 include/ulib/utility/uhttp.h
  120. +13 −15 src/ulib/base/base_trace.c
  121. +586 −199 src/ulib/base/lzo/minilzo.c
  122. +790 −1 src/ulib/base/utility.c
  123. +6 −8 src/ulib/base/zip/ziptool.c
  124. +2 −0 src/ulib/file.cpp
  125. +1 −1 src/ulib/net/client/ftp.cpp
  126. +2 −2 src/ulib/net/client/imap.cpp
  127. +3 −3 src/ulib/net/client/pop3.cpp
  128. +5 −5 src/ulib/net/client/smtp.cpp
  129. +101 −106 src/ulib/net/server/client_image.cpp
  130. +15 −1 src/ulib/net/server/plugin/mod_http.cpp
  131. +171 −157 src/ulib/net/server/server.cpp
  132. +16 −4 src/ulib/net/socket.cpp
  133. +2 −12 src/ulib/net/tcpsocket.cpp
  134. +348 −378 src/ulib/notifier.cpp
  135. +6 −0 src/ulib/timer.cpp
  136. +17 −17 src/ulib/utility/socket_ext.cpp
  137. +221 −237 src/ulib/utility/uhttp.cpp
  138. BIN tests/base/inp/openoffice_test.odt
  139. +3 −0 tests/base/zip.test
  140. +0 −1 tests/examples/99.html
  141. +3 −3 tests/examples/Makefile.am
  142. +3 −3 tests/examples/Makefile.in
  143. +1 −1 tests/examples/TSA/CA/tsaserial
  144. BIN tests/examples/TSA/TSA/.rnd
  145. +0 −122 tests/examples/XAdES/inp/sign.out.b64
  146. +6 −3 tests/examples/{ → benchmark}/benchmarking.cfg
  147. +2 −2 tests/examples/{ → benchmark}/benchmarking_ssl.cfg
  148. 0 tests/examples/{ → benchmark/docroot}/100.html
  149. 0 tests/examples/{ → benchmark/docroot}/1000.html
  150. 0 tests/examples/{ → benchmark/docroot}/ws/flash-bridge/WebSocketMain.swf
  151. +5 −2 tests/examples/benchmarking.sh
  152. +1 −1 tests/examples/inp/server.cf
  153. +283 −285 tests/examples/ok/web_server_multiclient.ok
  154. +1 −1 tests/examples/web_server.test
  155. +1 −1 tests/examples/web_server_multiclient.cfg
  156. +0 −349 tests/examples/ws/chat.html
  157. +0 −2,018 tests/examples/ws/jWebSocket.js
  158. +0 −452 tests/examples/ws/jwebsocket.css
  159. BIN tests/ulib/inp/test.db
  160. +1 −2 tests/ulib/test_event.cpp
  161. +1 −1 tests/ulib/test_imap.cpp
  162. +2 −3 tests/ulib/test_notifier.cpp
  163. +1 −1 tests/ulib/test_pop3.cpp
  164. +1 −1 tests/ulib/test_smtp.cpp
  165. +1 −4 tests/ulib/test_timer.cpp
View
5 Makefile.am
@@ -3,7 +3,7 @@
AUTOMAKE_OPTIONS = no-dependencies ## dist-shar dist-zip
ACLOCAL_AMFLAGS = -I m4
-EXTRA_DIST = autoconf configure.help TODO LICENSE* README.md README.LZO cdb README.cdb README.configure *.spec* \
+EXTRA_DIST = autoconf cdb configure.help TODO LICENSE* README* *.spec* \
ULib.m4 rpm.sh rpmpkgreq.lst rpmpkgreq.lst.suse openwrt \
doc/Doxyfile doc/benchmark doc/readme.txt shtool
@@ -66,6 +66,9 @@ dist-hook:
$(distdir)/src/ulib/net/server/plugin/mod_fcgi/test_fcgi \
$(distdir)/src/ulib/net/server/plugin/usp/usp_translator
+README.html: README.md
+ @Markdown.pl README.md > README.html
+
##install-data-local:
## @if test -f /etc/ld.so.conf \
## -a `echo $(libdir) | grep ^/usr`XXX != "XXX" ; then \
View
5 Makefile.in
@@ -326,7 +326,7 @@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AUTOMAKE_OPTIONS = no-dependencies ## dist-shar dist-zip
ACLOCAL_AMFLAGS = -I m4
-EXTRA_DIST = autoconf configure.help TODO LICENSE* README.md README.LZO cdb README.cdb README.configure *.spec* \
+EXTRA_DIST = autoconf cdb configure.help TODO LICENSE* README* *.spec* \
ULib.m4 rpm.sh rpmpkgreq.lst rpmpkgreq.lst.suse openwrt \
doc/Doxyfile doc/benchmark doc/readme.txt shtool
@@ -905,6 +905,9 @@ dist-hook:
$(distdir)/src/ulib/net/server/plugin/mod_fcgi/test_fcgi \
$(distdir)/src/ulib/net/server/plugin/usp/usp_translator
+README.html: README.md
+ @Markdown.pl README.md > README.html
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
View
21 README.LZO
@@ -6,8 +6,8 @@
Author : Markus Franz Xaver Johannes Oberhumer
<markus@oberhumer.com>
http://www.oberhumer.com/opensource/lzo/
- Version : 2.04
- Date : 31 Oct 2010
+ Version : 2.06
+ Date : 12 Aug 2011
I've created miniLZO for projects where it is inconvenient to
include (or require) the full LZO source code just because you
@@ -26,8 +26,8 @@
minilzo.c to your Makefile and #include minilzo.h from your program.
Note: you also must distribute this file ('README.LZO') with your project.
- minilzo.o compiles to about 6 kB (using gcc or Visual C on a i386), and
- the sources are about 30 kB when packed with zip - so there's no more
+ minilzo.o compiles to about 6 KiB (using gcc or Visual C on an i386), and
+ the sources are about 30 KiB when packed with zip - so there's no more
excuse that your application doesn't support data compression :-)
For more information, documentation, example programs and other support
@@ -50,14 +50,14 @@
If you are running on a very unusual architecture and lzo_init() fails then
you should first recompile with '-DLZO_DEBUG' to see what causes the failure.
- The most probable case is something like 'sizeof(char *) != sizeof(long)'.
+ The most probable case is something like 'sizeof(void *) != sizeof(size_t)'.
After identifying the problem you can compile by adding some defines
- like '-DSIZEOF_CHAR_P=8' to your Makefile.
+ like '-DSIZEOF_VOID_P=8' to your Makefile.
The best solution is (of course) using Autoconf - if your project uses
Autoconf anyway just add '-DMINILZO_HAVE_CONFIG_H' to your compiler
flags when compiling minilzo.c. See the LZO distribution for an example
- how to set up configure.in.
+ how to set up configure.ac.
Appendix B: list of public functions available in miniLZO
@@ -87,7 +87,7 @@
lzo_memset()
- Appendix C: suggested macros for 'configure.in' when using Autoconf
+ Appendix C: suggested macros for 'configure.ac' when using Autoconf
-------------------------------------------------------------------
Checks for typedefs and structures
AC_CHECK_TYPE(ptrdiff_t,long)
@@ -110,8 +110,9 @@
Appendix D: Copyright
---------------------
- LZO and miniLZO are Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002,
- 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Markus Franz Xaver Oberhumer
+ LZO and miniLZO are Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001,
+ 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
+ Markus Franz Xaver Oberhumer <markus@oberhumer.com>.
LZO and miniLZO are distributed under the terms of the GNU General
Public License (GPL). See the file COPYING.
View
215 README.html
@@ -0,0 +1,215 @@
+<h1>ULib - C++ library</h1>
+
+<p>ULib is a highly optimized class framework for writing C++ applications. I wrote this framework as my tool for writing applications in various contexts. It is a result of many years of work as C++ programmer. I think, in my opinion, that its strongest points are simplicity, efficiency and sophisticate debugging. This framework offers a class foundation that disables language features that consume memory or introduce runtime overhead, such as rtti and exception handling, and assumes one will mostly be linking applications with other pure C based libraries rather than using the overhead of the standard C++ library and other similar class frameworks. It include as application example a powerful search engine with relative web interface and a multi purpose server (plugin oriented) which results, out of <a href="http://john.freml.in/ulib-fast-io-framework">John Fremlin accurate investigations</a>, to be one of the faster web application frameworks for serving small dynamic webpages (and also make easier the usage of shell scripts for CGI application)</p>
+
+<h2>Quickstart</h2>
+
+<p>Take a look at:</p>
+
+<pre><code>$ ./configure --help
+</code></pre>
+
+<ul>
+<li>......</li>
+<li>--enable-zip enable build of ZIP support - require libz <code>[default: use if present libz]</code></li>
+<li>--with-libz use system LIBZ library - [will check /usr /usr/local] <code>[default=use if present]</code></li>
+<li>--with-libuuid use system libuuid library - [will check /usr /usr/local] <code>[default=use if present]</code></li>
+<li>--with-magic use system libmagic library - [will check /usr /usr/local] <code>[default=use if present]</code></li>
+<li>--with-ssl use system SSL library - [will check /usr /usr/local] <code>[default=use if present]</code></li>
+<li>--with-pcre use system PCRE library - [will check /usr /usr/local] <code>[default=use if present]</code></li>
+<li>--with-expat use system EXPAT library - [will check /usr /usr/local] <code>[default=use if present]</code></li>
+<li>--with-ssh use system SSH library - [will check /usr /usr/local]</li>
+<li>--with-curl use system cURL library - [will check /usr /usr/local]</li>
+<li>--with-ldap use system openLDAP library - [will check /usr /usr/local]</li>
+<li>--with-mysql use system MySQL library - [will check /usr /usr/local]</li>
+<li>--with-dbi use system DBI library - [will check /usr /usr/local]</li>
+<li>--with-libevent use system libevent library - [will check /usr /usr/local]</li>
+<li>--with-libxml2 use system libxml2 library - [will check /usr /usr/local]</li>
+<li>--with-page-speed use google page-speed SDK - [will check /usr /usr/local]</li>
+<li>--with-v8-javascript use V8 JavaScript Engine - [will check /usr /usr/local]</li>
+</ul>
+
+<p>if you desire wrapping of some system library installed.</p>
+
+<h2>userver (<code>_tcp</code> | <code>_ssl</code> | <code>_ipc</code>) application server (<code>plugin oriented</code>)</h2>
+
+<p>The current version offers the following features :</p>
+
+<ul>
+<li>HTTP/1.0 and 1.1 protocols supported.</li>
+<li>Persistent connections for HTTP/1.1 and Keep-Alive support for HTTP/1.0.</li>
+<li>Browser cache management (headers: If-Modified-Since/Last-modified).</li>
+<li>Chunk-encoding transfers support.</li>
+<li>HTTP multi-range request support.</li>
+<li>Memory caching of document root for (small) static pages with smart compression and CSS/JS reduction.</li>
+<li>Support for automatic update of caching document root with inotify (on Linux).</li>
+<li>Support for pipelining.</li>
+<li>Support for virtual hosts (also with SSL).</li>
+<li>Support for basic/digest authentication.</li>
+<li>Support for directory listings via basic/digest authentication.</li>
+<li>Support for uri protection.</li>
+<li>Support for aliases/redirection.</li>
+<li>Support for RewriteRule (lighttpd-like) that check for file existence as they do on Apache,
+ some CMS (SilverStripe) require it.</li>
+<li>Support for <a href="http://json.org/JSONRequest.html">JSONRequest</a>.</li>
+<li>Accept HTTP uploads up to 4 GB without increasing memory usage.</li>
+<li>Support for upload progress via USP (ULib Servlet Page).</li>
+<li>General <a href="http://it.wikipedia.org/wiki/Common_Gateway_Interface">CGI</a> support (run any CGI script) with automatic output compression (using deflate method).</li>
+<li>CGI support for shell script processes (with automatic management of form and cookie).</li>
+<li>CGI support for the X-Sendfile feature and also supports X-Accel-Redirect headers transparently.</li>
+<li>Support for minify HTML CGI output with wrapping <a href="http://code.google.com/speed/page-speed/download.html#pagespeed-sdk">google page speed SDK</a>.</li>
+<li>Support for running JavaScript code with wrapping <a href="http://code.google.com/apis/v8/intro.html">google V8 JavaScript Engine</a>.</li>
+<li><a href="http://www.phpmotionwiz.com/what-is-pseudo-streaming">HTTP pseudo-streaming</a> for FLV video supported.</li>
+<li>Support for Windows (without preforking).</li>
+<li>Requests cut in phases for modular architecture (apache-like).</li>
+<li>Configuration file with dedicated section.</li>
+<li>Built-in modules :
+<ul>
+<li><code>mod_echo</code> : echo features.</li>
+<li><code>mod_rpc</code> : generic Remote Procedure Call.</li>
+<li><code>mod_http</code> : core features, static file handler and dynamic page (ULib Servlet Page).</li>
+<li><code>mod_ssi</code> : <a href="http://en.wikipedia.org/wiki/Server_Side_Include">Server Side Includes</a> support with enhanced #set, direct include and #exec servlet (C/ULib Servlet Page).</li>
+<li><code>mod_nocat</code> : <a href="http://nocat.net/">captive portal</a> implementation.</li>
+<li><code>mod_tsa</code> : server side <a href="http://www.opentsa.org">Time Stamp</a> support.</li>
+<li><code>mod_soap</code> : generic <a href="http://java.sun.com/developer/technicalArticles/xml/webservices">SOAP</a> server services support.</li>
+<li><code>mod_fcgi</code> : third-party applications support thru <a href="http://www.fastcgi.com/drupal">FastCGI</a> interface.</li>
+<li><code>mod_scgi</code> : module that implements the client side of the <a href="http://www.mems-exchange.org/software/scgi">SCGI</a> protocol (experimental).</li>
+<li><code>mod_shib</code> : <a href="http://shibboleth.internet2.edu">web single sign-on support</a> (experimental).</li>
+<li><code>mod_proxy</code> : proxy support (experimental).</li>
+<li><code>mod_tcc</code> : <a href="http://bellard.org/tcc/">C Servlet Support</a> with libtcc as a backend for dynamic code generation (experimental).</li>
+<li><code>mod_geoip</code> : <a href="http://www.maxmind.com/geoip/api/c.shtml">geolocation support</a> (experimental).</li>
+<li><code>mod_stream</code> : simple streaming support (experimental).</li>
+<li><code>mod_socket</code> : <a href="http://dev.w3.org/html5/websockets">Web Socket</a> application framework (experimental).</li>
+</ul></li>
+</ul>
+
+<h2>Benchmarking</h2>
+
+<p>$ ./configure &amp;&amp; make
+ $ cd tests/examples
+ $ ./benchmarking.sh (or hello_world.sh)</p>
+
+<p>Use apachebench (ab)</p>
+
+<pre><code>$ ab -n 100000 -c10 http://127.0.0.1/usp/benchmarking.usp?name=stefano (or)
+$ ab -n 100000 -c10 http://127.0.0.1/usp/hello_world.usp
+</code></pre>
+
+<h2><a href="https://github.com/stefanocasazza/ULib/tree/master/doc/benchmark">Comparative Benchmarking</a></h2>
+
+<p>I consider in this benchmark the performant server [G-WAN 2.8.21 (32 bit)] (http://www.gwan.ch/) and [NGINX 1.0.5 (stable)] (http://nginx.net/).</p>
+
+<h2>gwan run with the follow options:</h2>
+
+<pre><code>-b: enable the TCP_DEFER_ACCEPT option
+-d: daemon mode (with an 'angel' process)
+</code></pre>
+
+<h2>nginx is configured in this way:</h2>
+
+<pre><code>$ CFLAGS=-O3 &amp;&amp;
+./configure --prefix=/usr/local --conf-path=/etc/local/nginx/nginx.conf
+--error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock
+--http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/body
+--http-proxy-temp-path=/var/lib/nginx/proxy --http-fastcgi-temp-path=/var/lib/nginx/fastcgi
+--with-ipv6 --without-http-cache --with-http_ssl_module --with-http_secure_link_module
+--with-http_gzip_static_module --without-http_limit_zone_module --without-http_limit_req_module
+--without-http_rewrite_module --without-http_charset_module --without-http_ssi_module
+--without-http_userid_module --without-http_autoindex_module --without-http_geo_module
+--without-http_map_module --without-http_split_clients_module --without-http_referer_module
+--without-http_uwsgi_module --without-http_scgi_module --without-http_memcached_module
+--without-http_empty_gif_module --without-http_browser_module --without-http_upstream_ip_hash_module
+</code></pre>
+
+<h2>nginx run with the follow configuration:</h2>
+
+<pre><code>user apache;
+worker_processes 2;
+
+error_log /var/log/nginx/error.log;
+pid /var/run/nginx.pid;
+
+events {
+ worker_connections 1024;
+ multi_accept on;
+}
+
+http {
+ include mime.types;
+ default_type application/octet-stream;
+
+ access_log off;
+ error_log /dev/null;
+ open_file_cache max=1000 inactive=20s;
+ open_file_cache_valid 30s;
+ open_file_cache_min_uses 2;
+
+ sendfile on;
+ keepalive_timeout 60;
+ gzip off;
+ server_tokens off;
+ tcp_nopush on;
+ tcp_nodelay off;
+
+ server {
+ listen 80;
+ server_name localhost;
+
+ access_log off;
+
+ location / {
+ root /usr/src/ULib-1.1.0/tests/examples/benchmark/docroot;
+ index index.html index.htm;
+ }
+ }
+}
+</code></pre>
+
+<p>All tests are performed on an Intel Pentium 4 2.8 Ghz, Hard drive 5400 rpm, Memory: 2GB DDR2 800MHz running Gentoo 64 bit (kernel 3.0.3).
+Yes, this CPU is 11-year old (single-core) P4, but some test on more recent processor (dual-core AMD) give similar results.</p>
+
+<p>For better comparison with gwan (32 bit) userver_tcp and nginx are compiled and run (as gwan) in chrooted environment: Ubuntu 11.04 (iX86)</p>
+
+<p>The client <a href="https://github.com/stefanocasazza/ULib/tree/master/doc/benchmark/bin/bench1.c">bench1.c</a>
+relies on ApacheBench (ab) and it is a slightly modified version of <a href="http://gwan.ch/source/ab.c.txt">G-WAN client</a>.</p>
+
+<p>I have considered two scenario for benchmarking:</p>
+
+<p>The client as well as the web server tested are hosted on the same computer.
+The client is running on different computer than the web server (networking is involved).</p>
+
+<p>I had to increase the local port range on client (because of the TIME_WAIT status of the TCP ports).</p>
+
+<ul>
+<li>HTTP Keep-Alives: yes/no</li>
+<li>Concurrency: from 0 to 1000, step 10</li>
+<li>Requests: up to 1000000 - within a fixed total amount of time (1 sec)</li>
+</ul>
+
+<p>For serving static content I use 3 file of different size:</p>
+
+<ul>
+<li>100.html ( 100 byte) (only 'XXX...' without CR/LF)</li>
+<li>1000.html (1000 byte) (only 'XXX...' without CR/LF)</li>
+<li>WebSocketMain.swf (80K byte)</li>
+</ul>
+
+<p>For serving dynamic content I use a simple request: <code>Hello {name}</code></p>
+
+<h2>userver_tcp is the winner of this benchmark for almost all level of concurrency.</h2>
+
+<p>The raw data in csv format are <a href="https://github.com/stefanocasazza/ULib/tree/master/doc/benchmark/current">here</a>.</p>
+
+<p><img src="doc/benchmark/img/net_keep_alive.png" alt="Networking KeepAlive 498 x 499" title="" />
+<img src="doc/benchmark/img/net_no_keep_alive.png" alt="Networking NoKeepAlive 498 x 499" title="" />
+<img src="doc/benchmark/img/localhost_keep_alive.png" alt="Localhost KeepAlive 498 x 499" title="" />
+<img src="doc/benchmark/img/localhost_no_keep_alive.png" alt="Localhost NoKeepAlive 498 x 499" title="" /></p>
+
+<h2>More info</h2>
+
+<p>ULib is normally built and installed as a set of shared object libraries and header files. These libraries and headers are installed using directories selected through a "configure" script that has been prepared with automake and autoconf. As such, they should build and install similarly to and in a manner compatible and consistent with most other GNU software. ULib is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</p>
+
+<p>Comments and suggestions are welcome.</p>
+
+<pre><code>stefano casazza &lt;stefano.casazza@gmail.com&gt;
+</code></pre>
View
189 README.md
@@ -1,16 +1,40 @@
ULib - C++ library
==================
-ULib is a highly optimized class framework for writing C++ applications. I wrote this framework as my tool for writing applications in various contexts.
-It is a result of many years of work as C++ programmer. I think, in my opinion, that its strongest points are simplicity, efficiency and sophisticate
-debugging. This framework offers a class foundation that disables language features that consume memory or introduce runtime overhead, such as rtti and
-exception handling, and assumes one will mostly be linking applications with other pure C based libraries rather than using the overhead of the standard
-C++ library and other similar class frameworks. It include as application example a powerful search engine with relative web interface and a multi purpose
-server (plugin oriented) which results, out of [John Fremlin accurate investigations](http://john.freml.in/ulib-fast-io-framework), to be one of the faster
-web application frameworks for serving small dynamic webpages (and also make easier the usage of shell scripts for CGI application)
+ULib is a highly optimized class framework for writing C++ applications. I wrote this framework as my tool for writing applications in various contexts. It is a result of many years of work as C++ programmer. I think, in my opinion, that its strongest points are simplicity, efficiency and sophisticate debugging. This framework offers a class foundation that disables language features that consume memory or introduce runtime overhead, such as rtti and exception handling, and assumes one will mostly be linking applications with other pure C based libraries rather than using the overhead of the standard C++ library and other similar class frameworks. It include as application example a powerful search engine with relative web interface and a multi purpose server (plugin oriented) which results, out of [John Fremlin accurate investigations](http://john.freml.in/ulib-fast-io-framework), to be one of the faster web application frameworks for serving small dynamic webpages (and also make easier the usage of shell scripts for CGI application)
-userver_(tcp|ssl|ipc) application server (plugin oriented)
+
+Quickstart
+----------
+
+Take a look at:
+
+ $ ./configure --help
+
+ * ......
+ * --enable-zip enable build of ZIP support - require libz `[default: use if present libz]`
+ * --with-libz use system LIBZ library - [will check /usr /usr/local] `[default=use if present]`
+ * --with-libuuid use system libuuid library - [will check /usr /usr/local] `[default=use if present]`
+ * --with-magic use system libmagic library - [will check /usr /usr/local] `[default=use if present]`
+ * --with-ssl use system SSL library - [will check /usr /usr/local] `[default=use if present]`
+ * --with-pcre use system PCRE library - [will check /usr /usr/local] `[default=use if present]`
+ * --with-expat use system EXPAT library - [will check /usr /usr/local] `[default=use if present]`
+ * --with-ssh use system SSH library - [will check /usr /usr/local]
+ * --with-curl use system cURL library - [will check /usr /usr/local]
+ * --with-ldap use system openLDAP library - [will check /usr /usr/local]
+ * --with-mysql use system MySQL library - [will check /usr /usr/local]
+ * --with-dbi use system DBI library - [will check /usr /usr/local]
+ * --with-libevent use system libevent library - [will check /usr /usr/local]
+ * --with-libxml2 use system libxml2 library - [will check /usr /usr/local]
+ * --with-page-speed use google page-speed SDK - [will check /usr /usr/local]
+ * --with-v8-javascript use V8 JavaScript Engine - [will check /usr /usr/local]
+
+if you desire wrapping of some system library installed.
+
+
+
+userver (`_tcp` | `_ssl` | `_ipc`) application server (`plugin oriented`)
----------------------------------------------------------
The current version offers the following features :
@@ -43,29 +67,29 @@ The current version offers the following features :
* Requests cut in phases for modular architecture (apache-like).
* Configuration file with dedicated section.
* Built-in modules :
- * mod_echo : echo features.
- * mod_rpc : generic Remote Procedure Call.
- * mod_http : core features, static file handler and dynamic page (ULib Servlet Page).
- * mod_ssi : [Server Side Includes]( http://en.wikipedia.org/wiki/Server_Side_Include) support with enhanced #set, direct include and #exec servlet (C/ULib Servlet Page).
- * mod_nocat : [captive portal](http://nocat.net/) implementation.
- * mod_tsa : server side [Time Stamp](http://www.opentsa.org) support.
- * mod_soap : generic [SOAP](http://java.sun.com/developer/technicalArticles/xml/webservices) server services support.
- * mod_fcgi : third-party applications support thru [FastCGI](http://www.fastcgi.com/drupal) interface.
- * mod_scgi : module that implements the client side of the [SCGI](http://www.mems-exchange.org/software/scgi) protocol (experimental).
- * mod_shib : [web single sign-on support](http://shibboleth.internet2.edu) (experimental).
- * mod_proxy : proxy support (experimental).
- * mod_tcc : [C Servlet Support](http://bellard.org/tcc/) with libtcc as a backend for dynamic code generation (experimental).
- * mod_geoip : [geolocation support](http://www.maxmind.com/geoip/api/c.shtml) (experimental).
- * mod_stream : simple streaming support (experimental).
- * mod_socket : [Web Socket](http://dev.w3.org/html5/websockets) application framework (experimental).
+ * `mod_echo` : echo features.
+ * `mod_rpc` : generic Remote Procedure Call.
+ * `mod_http` : core features, static file handler and dynamic page (ULib Servlet Page).
+ * `mod_ssi` : [Server Side Includes]( http://en.wikipedia.org/wiki/Server_Side_Include) support with enhanced #set, direct include and #exec servlet (C/ULib Servlet Page).
+ * `mod_nocat` : [captive portal](http://nocat.net/) implementation.
+ * `mod_tsa` : server side [Time Stamp](http://www.opentsa.org) support.
+ * `mod_soap` : generic [SOAP](http://java.sun.com/developer/technicalArticles/xml/webservices) server services support.
+ * `mod_fcgi` : third-party applications support thru [FastCGI](http://www.fastcgi.com/drupal) interface.
+ * `mod_scgi` : module that implements the client side of the [SCGI](http://www.mems-exchange.org/software/scgi) protocol (experimental).
+ * `mod_shib` : [web single sign-on support](http://shibboleth.internet2.edu) (experimental).
+ * `mod_proxy` : proxy support (experimental).
+ * `mod_tcc` : [C Servlet Support](http://bellard.org/tcc/) with libtcc as a backend for dynamic code generation (experimental).
+ * `mod_geoip` : [geolocation support](http://www.maxmind.com/geoip/api/c.shtml) (experimental).
+ * `mod_stream` : simple streaming support (experimental).
+ * `mod_socket` : [Web Socket](http://dev.w3.org/html5/websockets) application framework (experimental).
Benchmarking
------------
- $ ./configure && make
- $ cd tests/examples
- $ ./benchmarking.sh (or hello_world.sh)
+ $ ./configure && make
+ $ cd tests/examples
+ $ ./benchmarking.sh (or hello_world.sh)
Use apachebench (ab)
@@ -76,12 +100,85 @@ Use apachebench (ab)
[Comparative Benchmarking](https://github.com/stefanocasazza/ULib/tree/master/doc/benchmark)
--------------------------------------------------------------------------------------------
-I consider in this benchmark only the performant server [G-WAN 2.1.20 (32 bit)] (http://www.gwan.ch/).
-All tests are performed on an Intel Pentium 4 2.8 Ghz, Hard drive 5400 rpm, Memory: 2GB DDR2 800MHz) running Gentoo 64 bit (kernel 2.6.39-gentoo-r2).
+I consider in this benchmark the performant server [G-WAN 2.8.21 (32 bit)] (http://www.gwan.ch/) and [NGINX 1.0.5 (stable)] (http://nginx.net/).
+
+gwan run with the follow options:
+---------------------------------
+
+ -b: enable the TCP_DEFER_ACCEPT option
+ -d: daemon mode (with an 'angel' process)
+
+nginx is configured in this way:
+--------------------------------
+
+ $ CFLAGS=-O3 &&
+ ./configure --prefix=/usr/local --conf-path=/etc/local/nginx/nginx.conf
+ --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock
+ --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/body
+ --http-proxy-temp-path=/var/lib/nginx/proxy --http-fastcgi-temp-path=/var/lib/nginx/fastcgi
+ --with-ipv6 --without-http-cache --with-http_ssl_module --with-http_secure_link_module
+ --with-http_gzip_static_module --without-http_limit_zone_module --without-http_limit_req_module
+ --without-http_rewrite_module --without-http_charset_module --without-http_ssi_module
+ --without-http_userid_module --without-http_autoindex_module --without-http_geo_module
+ --without-http_map_module --without-http_split_clients_module --without-http_referer_module
+ --without-http_uwsgi_module --without-http_scgi_module --without-http_memcached_module
+ --without-http_empty_gif_module --without-http_browser_module --without-http_upstream_ip_hash_module
+
+nginx run with the follow configuration:
+----------------------------------------
+
+ user apache;
+ worker_processes 2;
+
+ error_log /var/log/nginx/error.log;
+ pid /var/run/nginx.pid;
+
+ events {
+ worker_connections 1024;
+ multi_accept on;
+ }
+
+ http {
+ include mime.types;
+ default_type application/octet-stream;
+
+ access_log off;
+ error_log /dev/null;
+ open_file_cache max=1000 inactive=20s;
+ open_file_cache_valid 30s;
+ open_file_cache_min_uses 2;
+
+ sendfile on;
+ keepalive_timeout 60;
+ gzip off;
+ server_tokens off;
+ tcp_nopush on;
+ tcp_nodelay off;
+
+ server {
+ listen 80;
+ server_name localhost;
+
+ access_log off;
+
+ location / {
+ root /usr/src/ULib-1.1.0/tests/examples/benchmark/docroot;
+ index index.html index.htm;
+ }
+ }
+ }
+
+All tests are performed on an Intel Pentium 4 2.8 Ghz, Hard drive 5400 rpm, Memory: 2GB DDR2 800MHz running Gentoo 64 bit (kernel 3.0.3).
+Yes, this CPU is 11-year old (single-core) P4, but some test on more recent processor (dual-core AMD) give similar results.
+
+For better comparison with gwan (32 bit) userver_tcp and nginx are compiled and run (as gwan) in chrooted environment: Ubuntu 11.04 (iX86)
The client [bench1.c](https://github.com/stefanocasazza/ULib/tree/master/doc/benchmark/bin/bench1.c)
relies on ApacheBench (ab) and it is a slightly modified version of [G-WAN client](http://gwan.ch/source/ab.c.txt).
+I have considered two scenario for benchmarking:
+
+The client as well as the web server tested are hosted on the same computer.
The client is running on different computer than the web server (networking is involved).
I had to increase the local port range on client (because of the TIME_WAIT status of the TCP ports).
@@ -96,38 +193,18 @@ For serving static content I use 3 file of different size:
* 1000.html (1000 byte) (only 'XXX...' without CR/LF)
* WebSocketMain.swf (80K byte)
-For serving dynamic content I use a simple request: "Hello {name}"
+For serving dynamic content I use a simple request: `Hello {name}`
-The raw data in csv format are [here](https://github.com/stefanocasazza/ULib/tree/master/doc/benchmark).
+userver_tcp is the winner of this benchmark for almost all level of concurrency.
+----------------------------------------
-userver_tcp is the winner of this benchmark in all case for almost all level of concurrency.
+The raw data in csv format are [here](https://github.com/stefanocasazza/ULib/tree/master/doc/benchmark/current).
+![Networking KeepAlive 498 x 499](doc/benchmark/img/net_keep_alive.png)
+![Networking NoKeepAlive 498 x 499](doc/benchmark/img/net_no_keep_alive.png)
+![Localhost KeepAlive 498 x 499](doc/benchmark/img/localhost_keep_alive.png)
+![Localhost NoKeepAlive 498 x 499](doc/benchmark/img/localhost_no_keep_alive.png)
-Quickstart
-----------
-
-Take a look at:
-
- $ ./configure --help
-* ......
-* --enable-zip enable build of ZIP support - require libz [default: use if present libz]
-* --with-libz use system LIBZ library - [will check /usr /usr/local] [default=use if present]
-* --with-libuuid use system libuuid library - [will check /usr /usr/local] [default=use if present]
-* --with-magic use system libmagic library - [will check /usr /usr/local] [default=use if present]
-* --with-ssl use system SSL library - [will check /usr /usr/local] [default=use if present]
-* --with-pcre use system PCRE library - [will check /usr /usr/local] [default=use if present]
-* --with-expat use system EXPAT library - [will check /usr /usr/local] [default=use if present]
-* --with-ssh use system SSH library - [will check /usr /usr/local]
-* --with-curl use system cURL library - [will check /usr /usr/local]
-* --with-ldap use system openLDAP library - [will check /usr /usr/local]
-* --with-mysql use system MySQL library - [will check /usr /usr/local]
-* --with-dbi use system DBI library - [will check /usr /usr/local]
-* --with-libevent use system libevent library - [will check /usr /usr/local]
-* --with-libxml2 use system libxml2 library - [will check /usr /usr/local]
-* --with-page-speed use google page-speed SDK - [will check /usr /usr/local]
-* --with-v8-javascript use V8 JavaScript Engine - [will check /usr /usr/local]
-
-if you desire wrapping of some system library installed.
More info
View
2 configure
@@ -26269,7 +26269,7 @@ $as_echo "#define CLOSEDIR_VOID 1" >>confdefs.h
fi
# Check for functions in one big call, to reduce the size of configure
-for ac_func in accept4 daemon epoll_create1 epoll_wait fallocate fallocate64 fnmatch getaddrinfo getnameinfo inet_ntop memmem \
+for ac_func in accept4 clock_gettime daemon epoll_create1 epoll_wait fallocate fallocate64 fnmatch getaddrinfo getnameinfo inet_ntop memmem \
mremap pread sendfile64 strndup mkdtemp strptime strtof strtoull strtold gmtime_r timegm strerror strsignal
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
View
2 configure.in
@@ -648,7 +648,7 @@ TWOCAN_CONF_MSG(Checking for functions)
AC_FUNC_NANOSLEEP
AC_FUNC_CLOSEDIR_VOID
# Check for functions in one big call, to reduce the size of configure
-AC_CHECK_FUNCS([accept4 daemon epoll_create1 epoll_wait fallocate fallocate64 fnmatch getaddrinfo getnameinfo inet_ntop memmem \
+AC_CHECK_FUNCS([accept4 clock_gettime daemon epoll_create1 epoll_wait fallocate fallocate64 fnmatch getaddrinfo getnameinfo inet_ntop memmem \
mremap pread sendfile64 strndup mkdtemp strptime strtof strtoull strtold gmtime_r timegm strerror strsignal])
if test "$ac_cv_func_inet_ntop" != "yes"; then
View
BIN doc/benchmark/bench.ods
Binary file not shown.
View
46 doc/benchmark/bin/bench1.c
@@ -261,21 +261,39 @@ static int http_req(char *request);
#undef URL
#undef PORT
#undef FROM
+#undef TO
static const char* IP; // = (argv[1]? argv[1] :"localhost");
static const char* URL; // = (argv[2]? argv[2] :"/index.html");
static int PORT; // = (argv[3]?atoi(argv[3]):80);
static int FROM; // = (argv[4]?atoi(argv[4]):0);
+static int TO; // = (argv[5]?atoi(argv[5]):1000);
// -------------------------
// ----------------------------------------------------------------------------
int main(int argc, char *argv[])
{
+// -------------------------
+// STEFANO
+// -------------------------
+IP = (argv[1]?argv[1]:"localhost");
+URL = (argv[2]?argv[2]:"/index.html");
+PORT = (argv[3]?atoi(argv[3]):80);
+FROM = (argv[4]?atoi(argv[4]):0);
+TO = (argv[5]?atoi(argv[5]):1000);
+
+// #define GWAN_28x
+// #define U_KEEP_ALIVES
+// -------------------------
+
int i, j, nbr, max_rps, min_rps, ave_rps;
char str[256], buff[4070];
- FILE *f, *fo = fopen("test.txt", "w+b");
+ FILE *f, *fo;
time_t st = time(NULL);
u64 tmax_rps = 0, tmin_rps = 0, tave_rps = 0;
+ sprintf(str, "%s/test.txt", IP);
+ fo = fopen(str, "w+b");
+
//fprintf(stderr, "URL=%s\n", URL);
//fprintf(stderr, "ret=%d\n", http_req(URL));
//exit(0);
@@ -288,25 +306,20 @@ int main(int argc, char *argv[])
}
#endif
-// -------------------------
-// STEFANO
-// -------------------------
-IP = (argv[1]?argv[1]:"localhost");
-URL = (argv[2]?argv[2]:"/index.html");
-PORT = (argv[3]?atoi(argv[3]):80);
-FROM = (argv[4]?atoi(argv[4]):0);
-// -------------------------
-
for(i = FROM; i <= TO; i += STEP)
{
#ifdef IBM_APACHEBENCH
// ApacheBench makes it straight for you since you can directly tell
// the 'concurrency' and 'duration' you wish:
- sprintf(str, "ab -n 1000000 -c %d -S -d -t 1 -k " /* KEEP-ALIVES */
-// sprintf(str, "ab -n 1000000 -c %d -S -d -t 1 " /* NO Keep-Alives */
+ sprintf(str, "ab -n 1000000 -c %d -S -d -t 1 "
+# ifdef U_KEEP_ALIVES
+ "-k " /* KEEP-ALIVES */
+# elif defined(GWAN_28x)
+ "-H \"Connection: close\" " /* GWAN 2.8.[8-14] need this if NO Keep-Alives */
+# endif
"-H \"Accept-Encoding: gzip,deflate\" " /* HTTP compression */
- "\"http://%s" ":%d" "%s" "\"" " > ab.txt", i?i:1, IP, PORT, URL);
+ "\"http://%s" ":%d" "%s" "\"" " > %s/ab.txt", i?i:1, IP, PORT, URL, IP);
#else
// HTTPerf does not let you specify the 'concurrency'rate:
//
@@ -346,7 +359,7 @@ FROM = (argv[4]?atoi(argv[4]):0);
"--num-conns=%d --num-calls 100000 " // KEEP-ALIVES
// "--num-conns=1000000 --num-calls 1 " // NO Keep_Alives
"--timeout 5 --hog --uri=\""
- "%s\"" " > ab.txt", IP, PORT, i?i:1, i?i:1, URL);
+ "%s\"" " > %s/ab.txt", IP, PORT, i?i:1, i?i:1, URL, IP);
#endif
for(max_rps = 0, ave_rps = 0, min_rps = 0xffff0, j = 0; j < ITER; j++)
@@ -359,8 +372,9 @@ FROM = (argv[4]?atoi(argv[4]):0);
// this OS platform is -by far- the slowest and less scalable of all)
Sleep(4000);
#endif
- // get the information we need from res.txt
- if(!(f = fopen("ab.txt", "rb")))
+ // get the information we need from ab.txt
+ sprintf(buff, "%s/ab.txt", IP);
+ if(!(f = fopen(buff, "rb")))
{
printf("Can't open ab.txt output\n");
return 1;
View
39 doc/benchmark/bin/csp.sh
@@ -8,49 +8,54 @@
# const char* URL = (argv[2]? argv[2] :"/index.html");
# int PORT = (argv[3]?atoi(argv[3]):80);
# int FROM = (argv[4]?atoi(argv[4]):0);
+# int TO = (argv[5]?atoi(argv[5]):1000);
# I had to increase the local port range (because of the TIME_WAIT status of the TCP ports)
# net.ipv4.ip_local_port_range = 1024 65535
/sbin/sysctl -w net/ipv4/ip_local_port_range="1024 65535"
- HOST=stefano
+ HOST=$1
+#HOST=stefano
#HOST=giallo
-./bench_keepalive $HOST "/100.html" 8080 0
-mv test.txt gwan_100_keepalive.csv
+mkdir -p $HOST && chmod 777 $HOST
+
+./bench_keepalive $HOST "/100.html" 8080 0 1000
+mv $1/test.txt $1/gwan_100_keepalive.csv
sleep 60
-./bench_NO_keepalive $HOST "/100.html" 8080 0
-mv test.txt gwan_100_NO_keepalive.csv
+./bench_NO_keepalive $HOST "/100.html" 8080 0 1000
+mv $1/test.txt $1/gwan_100_NO_keepalive.csv
sleep 60
-./bench_NO_keepalive $HOST "/1000.html" 8080 0
-mv test.txt gwan_1000_NO_keepalive.csv
+./bench_NO_keepalive $HOST "/1000.html" 8080 0 1000
+mv $1/test.txt $1/gwan_1000_NO_keepalive.csv
sleep 60
-./bench_keepalive $HOST "/1000.html" 8080 0
-mv test.txt gwan_1000_keepalive.csv
+./bench_keepalive $HOST "/1000.html" 8080 0 1000
+mv $1/test.txt $1/gwan_1000_keepalive.csv
sleep 60
-./bench_NO_keepalive $HOST "/csp?hellox&name=stefano" 8080 0
-mv test.txt csp_NO_keepalive.csv
+./bench_keepalive $HOST "/ws/flash-bridge/WebSocketMain.swf" 8080 0 1000
+mv $1/test.txt $1/gwan_big_keepalive.csv
sleep 60
-./bench_keepalive $HOST "/csp?hellox&name=stefano" 8080 0
-mv test.txt csp_keepalive.csv
+./bench_NO_keepalive $HOST "/ws/flash-bridge/WebSocketMain.swf" 8080 0 1000
+mv $1/test.txt $1/gwan_big_NO_keepalive.csv
sleep 60
-./bench_keepalive $HOST "/ws/flash-bridge/WebSocketMain.swf" 8080 0
-mv test.txt gwan_big_keepalive.csv
+./bench_NO_keepalive $HOST "/csp?hellox&name=stefano" 8080 0 1000
+mv $1/test.txt $1/csp_NO_keepalive.csv
sleep 60
-./bench_NO_keepalive $HOST "/ws/flash-bridge/WebSocketMain.swf" 8080 0
-mv test.txt gwan_big_NO_keepalive.csv
+./bench_keepalive $HOST "/csp?hellox&name=stefano" 8080 0 1000
+mv $1/test.txt $1/csp_keepalive.csv
+
View
29 doc/benchmark/bin/nginx.sh
@@ -7,36 +7,39 @@
# net.ipv4.ip_local_port_range = 1024 65535
/sbin/sysctl -w net/ipv4/ip_local_port_range="1024 65535"
- HOST=stefano
+ HOST=$1
+#HOST=stefano
#HOST=giallo
+mkdir -p $HOST && chmod 777 $HOST
+
# ab -n 1000000 -c 10 -S -d -t 1 -H 'Accept-Encoding: gzip,deflate' "http://$HOST:80/ws/flash-bridge/WebSocketMain.swf" // NO Keep-Alives
# ab -n 1000000 -c 10 -S -d -t 1 -k -H 'Accept-Encoding: gzip,deflate' "http://$HOST:80/ws/flash-bridge/WebSocketMain.swf" // KEEP-ALIVES
-./bench_keepalive $HOST "/100.html" # 8080 0
-mv test.txt nginx_100_keepalive.csv
+./bench_keepalive $HOST "/100.html" 8080 0 1000
+mv $1/test.txt $1/nginx_100_keepalive.csv
sleep 60
-./bench_NO_keepalive $HOST "/100.html" # 8080 0
-mv test.txt nginx_100_NO_keepalive.csv
+./bench_NO_keepalive $HOST "/100.html" 8080 0 1000
+mv $1/test.txt $1/nginx_100_NO_keepalive.csv
sleep 60
-./bench_NO_keepalive $HOST "/1000.html" # 8080 0
-mv test.txt nginx_1000_NO_keepalive.csv
+./bench_NO_keepalive $HOST "/1000.html" 8080 0 1000
+mv $1/test.txt $1/nginx_1000_NO_keepalive.csv
sleep 60
-./bench_keepalive $HOST "/1000.html" # 8080 0
-mv test.txt nginx_1000_keepalive.csv
+./bench_keepalive $HOST "/1000.html" 8080 0 1000
+mv $1/test.txt $1/nginx_1000_keepalive.csv
sleep 60
-./bench_keepalive $HOST "/ws/flash-bridge/WebSocketMain.swf" # 8080 0
-mv test.txt nginx_big_keepalive.csv
+./bench_keepalive $HOST "/ws/flash-bridge/WebSocketMain.swf" 8080 0 1000
+mv $1/test.txt $1/nginx_big_keepalive.csv
sleep 60
-./bench_NO_keepalive $HOST "/ws/flash-bridge/WebSocketMain.swf" # 8080 0
-mv test.txt nginx_big_NO_keepalive.csv
+./bench_NO_keepalive $HOST "/ws/flash-bridge/WebSocketMain.swf" 8080 0 1000
+mv $1/test.txt $1/nginx_big_NO_keepalive.csv
View
41 doc/benchmark/bin/usp.sh
@@ -2,56 +2,63 @@
# usp.sh
+# gcc -DU_KEEP_ALIVES -static bench1.c -o bench_keepalive
+# gcc -static bench1.c -o bench_NO_keepalive
+
# const char* IP = (argv[1]? argv[1] :"localhost");
# const char* URL = (argv[2]? argv[2] :"/index.html");
# int PORT = (argv[3]?atoi(argv[3]):80);
# int FROM = (argv[4]?atoi(argv[4]):0);
+# int TO = (argv[5]?atoi(argv[5]):1000);
# I had to increase the local port range (because of the TIME_WAIT status of the TCP ports)
# net.ipv4.ip_local_port_range = 1024 65535
/sbin/sysctl -w net/ipv4/ip_local_port_range="1024 65535"
- HOST=stefano
+ HOST=$1
+#HOST=stefano
#HOST=giallo
+mkdir -p $HOST && chmod 777 $HOST
+
# ab -n 1000000 -c 10 -S -d -t 1 -H 'Accept-Encoding: gzip,deflate' "http://$HOST:80/usp/benchmarking.usp?name=stefano" // NO Keep-Alives
# ab -n 1000000 -c 10 -S -d -t 1 -k -H 'Accept-Encoding: gzip,deflate' "http://$HOST:80/usp/benchmarking.usp?name=stefano" // KEEP-ALIVES
-./bench_keepalive $HOST "/100.html" # 8080 0
-mv test.txt userver_tcp_100_keepalive.csv
+./bench_keepalive $HOST "/100.html" 80 0 1000
+mv $1/test.txt $1/userver_tcp_100_keepalive.csv
sleep 60
-./bench_NO_keepalive $HOST "/100.html" # 8080 0
-mv test.txt userver_tcp_100_NO_keepalive.csv
+./bench_NO_keepalive $HOST "/100.html" 80 0 1000
+mv $1/test.txt $1/userver_tcp_100_NO_keepalive.csv
sleep 60
-./bench_NO_keepalive $HOST "/1000.html" # 8080 0
-mv test.txt userver_tcp_1000_NO_keepalive.csv
+./bench_NO_keepalive $HOST "/1000.html" 80 0 1000
+mv $1/test.txt $1/userver_tcp_1000_NO_keepalive.csv
sleep 60
-./bench_keepalive $HOST "/1000.html" # 8080 0
-mv test.txt userver_tcp_1000_keepalive.csv
+./bench_keepalive $HOST "/1000.html" 80 0 1000
+mv $1/test.txt $1/userver_tcp_1000_keepalive.csv
sleep 60
-./bench_NO_keepalive $HOST "/usp/benchmarking.usp?name=stefano" # 8080 0
-mv test.txt usp_NO_keepalive.csv
+./bench_keepalive $HOST "/ws/flash-bridge/WebSocketMain.swf" 80 0 1000
+mv $1/test.txt $1/userver_tcp_big_keepalive.csv
sleep 60
-./bench_keepalive $HOST "/usp/benchmarking.usp?name=stefano" # 8080 0
-mv test.txt usp_keepalive.csv
+./bench_NO_keepalive $HOST "/ws/flash-bridge/WebSocketMain.swf" 80 0 1000
+mv $1/test.txt $1/userver_tcp_big_NO_keepalive.csv
sleep 60
-./bench_keepalive $HOST "/ws/flash-bridge/WebSocketMain.swf" # 8080 0
-mv test.txt userver_tcp_big_keepalive.csv
+./bench_NO_keepalive $HOST "/usp/benchmarking.usp?name=stefano" 80 0 1000
+mv $1/test.txt $1/usp_NO_keepalive.csv
sleep 60
-./bench_NO_keepalive $HOST "/ws/flash-bridge/WebSocketMain.swf" # 8080 0
-mv test.txt userver_tcp_big_NO_keepalive.csv
+./bench_keepalive $HOST "/usp/benchmarking.usp?name=stefano" 80 0 1000
+mv $1/test.txt $1/usp_keepalive.csv
View
46 doc/benchmark/current/gwan/2.1.20/gwan.log
@@ -0,0 +1,46 @@
+[Tue Aug 30 18:01:59 2011 GMT] ----------------------------------------
+[Tue Aug 30 18:01:59 2011 GMT] G-WAN 2.1.20 (Jan 20 2011 17:46:00)
+[Tue Aug 30 18:01:59 2011 GMT] ----------------------------------------
+[Tue Aug 30 18:01:59 2011 GMT] Local Time: Tue, 30 Aug 2011 20:01:59 GMT+2
+[Tue Aug 30 18:01:59 2011 GMT] RAM : (1.30 GB free + 0 shared + 200.89 MB buffers) / 1.99 GB total
+[Tue Aug 30 18:01:59 2011 GMT] DISK: 0 free / 0 total
+[Tue Aug 30 18:01:59 2011 GMT] 1 Intel(R) Pentium(R) 4 CPU 2.80GHz (2 logical CPUs)
+[Tue Aug 30 18:01:59 2011 GMT] 32-bit little-endian (least significant byte first)
+[Tue Aug 30 18:01:59 2011 GMT] Linux v#1 SMP Tue Aug 30 13:27:26 CEST 2011 built 3.0.4
+[Tue Aug 30 18:01:59 2011 GMT] user: root (uid:0), group: root (uid:0)
+[Tue Aug 30 18:01:59 2011 GMT] system fd_max: 200,000
+[Tue Aug 30 18:01:59 2011 GMT] program fd_max: 200,000
+[Tue Aug 30 18:01:59 2011 GMT] Available network interfaces (2):
+[Tue Aug 30 18:01:59 2011 GMT] 127.0.0.1
+[Tue Aug 30 18:01:59 2011 GMT] 10.30.1.131
+[Tue Aug 30 18:01:59 2011 GMT] Host /mnt/storage/stefano/ulib/gwan/OLD/0.0.0.0_8080/#0.0.0.0:
+[Tue Aug 30 18:01:59 2011 GMT] server started
+[Tue Aug 30 18:01:59 2011 GMT] loaded request.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded trace.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded cache0.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded getheaders.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded redirect.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded base64.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded while.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded cache1.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded attack.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded cache2.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded crash_gwcall.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded sleep.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded noheaders.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded crash.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded cache3.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded cache4.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded chart.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded served_from.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded contact.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded httpdate.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded argv.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded loan.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded hellox.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded hello.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded setheaders.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded exit.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded crash_libc.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded fractal.c
+[Tue Aug 30 18:01:59 2011 GMT] loaded json.c
View
3 doc/benchmark/current/gwan/2.1.20/localhost/csp_NO_keepalive.csv
@@ -0,0 +1,3 @@
+ 1, 4981, 5041, 5127
+* Non-2xx responses:3
+min:4981 avg:5041 max:5127 Time:11 second(s) [00:00:11]
View
5 doc/benchmark/current/gwan/2.1.20/localhost/csp_keepalive.csv
@@ -0,0 +1,5 @@
+ 1, 14775, 14818, 14843
+ 10, 21064, 21175, 21268
+ 20, 20933, 20986, 21048
+* Non-2xx responses:1
+min:56772 avg:56979 max:57159 Time:32 second(s) [00:00:32]
View
102 doc/benchmark/current/gwan/2.1.20/localhost/gwan_1000_NO_keepalive.csv
@@ -0,0 +1,102 @@
+ 1, 5183, 5195, 5204
+ 10, 6030, 6085, 6159
+ 20, 6038, 6095, 6141
+ 30, 6042, 6106, 6148
+ 40, 6028, 6110, 6156
+ 50, 5987, 6068, 6131
+ 60, 5986, 6062, 6116
+ 70, 5980, 6047, 6106
+ 80, 5994, 6044, 6094
+ 90, 5931, 6001, 6073
+ 100, 5981, 6009, 6063
+ 110, 5931, 5985, 6028
+ 120, 5858, 5928, 5995
+ 130, 5879, 5927, 5979
+ 140, 5858, 5905, 5953
+ 150, 5874, 5913, 5964
+ 160, 5847, 5884, 5937
+ 170, 5766, 5873, 5947
+ 180, 5759, 5853, 5899
+ 190, 5790, 5837, 5931
+ 200, 5760, 5837, 5908
+ 210, 5785, 5849, 5918
+ 220, 5708, 5821, 5891
+ 230, 5719, 5816, 5881
+ 240, 5690, 5750, 5867
+ 250, 5657, 5718, 5746
+ 260, 5657, 5747, 5869
+ 270, 5744, 5811, 5856
+ 280, 5715, 5771, 5832
+ 290, 5717, 5751, 5826
+ 300, 5647, 5751, 5895
+ 310, 5740, 5785, 5839
+ 320, 5651, 5696, 5739
+ 330, 5707, 5761, 5818
+ 340, 5660, 5710, 5760
+ 350, 5568, 5733, 5838
+ 360, 5606, 5666, 5717
+ 370, 5695, 5776, 5826
+ 380, 5555, 5604, 5675
+ 390, 5673, 5714, 5772
+ 400, 5531, 5593, 5781
+ 410, 5573, 5631, 5722
+ 420, 5670, 5735, 5801
+ 430, 5566, 5684, 5868
+ 440, 5550, 5606, 5664
+ 450, 5650, 5756, 5831
+ 460, 5696, 5817, 5856
+ 470, 5841, 5871, 5892
+ 480, 5692, 5739, 5901
+ 490, 5711, 5762, 5854
+ 500, 5766, 5836, 5923
+ 510, 5835, 5895, 5943
+ 520, 5664, 5714, 5933
+ 530, 5668, 5710, 5777
+ 540, 5696, 5747, 5866
+ 550, 5820, 5876, 5928
+ 560, 5812, 5878, 5970
+ 570, 5660, 5823, 5985
+ 580, 5709, 5752, 5788
+ 590, 5713, 5765, 5822
+ 600, 5701, 5771, 5837
+ 610, 5788, 5885, 5962
+ 620, 5780, 5889, 5969
+ 630, 5640, 5822, 5946
+ 640, 5641, 5772, 5975
+ 650, 5694, 5761, 5806
+ 660, 5658, 5761, 5812
+ 670, 5814, 5828, 5870
+ 680, 5751, 5832, 5882
+ 690, 5814, 5913, 5971
+ 700, 5764, 5896, 5976
+ 710, 5836, 5925, 5964
+ 720, 5665, 5758, 5941
+ 730, 5705, 5780, 5836
+ 740, 5744, 5808, 5889
+ 750, 5791, 5823, 5892
+ 760, 5788, 5844, 5880
+ 770, 5807, 5831, 5859
+ 780, 5862, 5895, 5938
+ 790, 5775, 5904, 5964
+ 800, 5897, 5955, 5990
+ 810, 5582, 5926, 6013
+ 820, 5611, 5769, 6013
+ 830, 5696, 5744, 5790
+ 840, 5716, 5786, 5853
+ 850, 5791, 5850, 5919
+ 860, 5779, 5897, 6000
+ 870, 5746, 5885, 5960
+ 880, 5809, 5851, 5895
+ 890, 5766, 5875, 5924
+ 900, 5821, 5883, 5949
+ 910, 5720, 5871, 5945
+ 920, 5818, 5916, 6050
+ 930, 5552, 5808, 5986
+ 940, 5572, 5771, 5965
+ 950, 5589, 5687, 5953
+ 960, 5616, 5682, 5731
+ 970, 5625, 5730, 5812
+ 980, 5695, 5821, 5877
+ 990, 5733, 5853, 5922
+ 1000, 5658, 5806, 5935
+min:580029 avg:588248 max:596253 Time:1069 second(s) [00:17:49]
View
102 doc/benchmark/current/gwan/2.1.20/localhost/gwan_1000_keepalive.csv
@@ -0,0 +1,102 @@
+ 1, 15190, 15256, 15307
+ 10, 21221, 21333, 21464
+ 20, 21089, 21151, 21207
+ 30, 21111, 21173, 21209
+ 40, 20936, 21110, 21180
+ 50, 21041, 21103, 21181
+ 60, 21012, 21079, 21130
+ 70, 20679, 20934, 21075
+ 80, 20772, 20903, 20995
+ 90, 20660, 20853, 20953
+ 100, 20402, 20739, 20921
+ 110, 20595, 20726, 20812
+ 120, 20339, 20587, 20805
+ 130, 20169, 20411, 20651
+ 140, 20244, 20392, 20515
+ 150, 20296, 20365, 20414
+ 160, 20229, 20339, 20403
+ 170, 20220, 20257, 20341
+ 180, 19601, 20132, 20242
+ 190, 19903, 20134, 20211
+ 200, 20010, 20082, 20126
+ 210, 19774, 19981, 20068
+ 220, 19709, 19874, 20019
+ 230, 19632, 19868, 19988
+ 240, 19568, 19790, 19924
+ 250, 19593, 19733, 19860
+ 260, 19485, 19662, 19810
+ 270, 19463, 19645, 19828
+ 280, 19379, 19605, 19773
+ 290, 19462, 19551, 19725
+ 300, 19544, 19654, 19707
+ 310, 19542, 19589, 19616
+ 320, 19400, 19572, 19625
+ 330, 19005, 19484, 19630
+ 340, 19450, 19497, 19530
+ 350, 19334, 19446, 19512
+ 360, 19411, 19455, 19501
+ 370, 19402, 19429, 19462
+ 380, 18924, 19345, 19437
+ 390, 19278, 19335, 19378
+ 400, 18875, 19235, 19421
+ 410, 19201, 19258, 19339
+ 420, 19020, 19203, 19278
+ 430, 19175, 19216, 19248
+ 440, 18879, 19060, 19163
+ 450, 18922, 19124, 19237
+ 460, 18978, 19104, 19170
+ 470, 18937, 19071, 19156
+ 480, 19021, 19084, 19181
+ 490, 18958, 19061, 19106
+ 500, 18981, 19044, 19111
+ 510, 18868, 19015, 19153
+ 520, 18883, 19007, 19098
+ 530, 18830, 19000, 19117
+ 540, 18680, 18906, 19044
+ 550, 18763, 18884, 18979
+ 560, 18833, 18890, 19018
+ 570, 18729, 18869, 18949
+ 580, 18715, 18847, 19022
+ 590, 18464, 18763, 18941
+ 600, 18594, 18799, 18930
+ 610, 18692, 18759, 18891
+ 620, 18669, 18790, 18893
+ 630, 18624, 18727, 18825
+ 640, 18144, 18616, 18713
+ 650, 18571, 18678, 18878
+ 660, 18557, 18601, 18649
+ 670, 18540, 18609, 18806
+ 680, 18569, 18673, 18757
+ 690, 18477, 18643, 18771
+ 700, 18441, 18510, 18544
+ 710, 18366, 18434, 18521
+ 720, 18399, 18572, 18645
+ 730, 18438, 18602, 18657
+ 740, 18498, 18605, 18668
+ 750, 18338, 18441, 18576
+ 760, 18111, 18503, 18614
+ 770, 18312, 18470, 18606
+ 780, 18000, 18323, 18382
+ 790, 18395, 18406, 18413
+ 800, 18326, 18463, 18526
+ 810, 17984, 18157, 18239
+ 820, 18114, 18166, 18208
+ 830, 18059, 18084, 18106
+ 840, 18015, 18099, 18132
+ 850, 18039, 18093, 18138
+ 860, 17964, 18003, 18031
+ 870, 17957, 18009, 18046
+ 880, 17927, 17997, 18052
+ 890, 17928, 18006, 18142
+ 900, 17797, 17911, 17967
+ 910, 17933, 18195, 18336
+ 920, 18142, 18225, 18292
+ 930, 17792, 17962, 18185
+ 940, 17785, 18111, 18280
+ 950, 17764, 17863, 18130
+ 960, 17842, 18007, 18161
+ 970, 17815, 18042, 18157
+ 980, 17516, 17845, 18126
+ 990, 17572, 17996, 18132
+ 1000, 17664, 17764, 17948
+min:1917456 avg:1932974 max:1943339 Time:1073 second(s) [00:17:53]
View
102 doc/benchmark/current/gwan/2.1.20/localhost/gwan_100_NO_keepalive.csv
@@ -0,0 +1,102 @@
+ 1, 5207, 5221, 5233
+ 10, 6040, 6104, 6162
+ 20, 6013, 6106, 6165
+ 30, 6063, 6114, 6161
+ 40, 6010, 6089, 6147
+ 50, 5999, 6064, 6142
+ 60, 5994, 6070, 6124
+ 70, 5979, 6038, 6099
+ 80, 6011, 6053, 6099
+ 90, 5958, 6021, 6060
+ 100, 5942, 6015, 6065
+ 110, 5946, 6008, 6077
+ 120, 5918, 5979, 6020
+ 130, 5887, 5952, 6007
+ 140, 5857, 5941, 6003
+ 150, 5834, 5922, 5974
+ 160, 5859, 5890, 5962
+ 170, 5849, 5877, 5940
+ 180, 5827, 5863, 5912
+ 190, 5806, 5851, 5873
+ 200, 5765, 5867, 5934
+ 210, 5806, 5840, 5884
+ 220, 5795, 5847, 5892
+ 230, 5719, 5840, 5904
+ 240, 5730, 5837, 5900
+ 250, 5798, 5840, 5864
+ 260, 5710, 5834, 5885
+ 270, 5657, 5806, 5902
+ 280, 5752, 5798, 5849
+ 290, 5690, 5747, 5791
+ 300, 5643, 5742, 5865
+ 310, 5762, 5805, 5849
+ 320, 5619, 5673, 5751
+ 330, 5604, 5768, 5885
+ 340, 5666, 5705, 5743
+ 350, 5577, 5706, 5836
+ 360, 5609, 5694, 5861
+ 370, 5694, 5746, 5814
+ 380, 5562, 5666, 5806
+ 390, 5660, 5707, 5813
+ 400, 5559, 5713, 5833
+ 410, 5559, 5649, 5707
+ 420, 5680, 5744, 5824
+ 430, 5505, 5644, 5802
+ 440, 5567, 5646, 5705
+ 450, 5656, 5726, 5830
+ 460, 5759, 5829, 5902
+ 470, 5793, 5875, 5933
+ 480, 5717, 5736, 5753
+ 490, 5747, 5779, 5824
+ 500, 5739, 5849, 5905
+ 510, 5856, 5893, 5955
+ 520, 5682, 5825, 5975
+ 530, 5705, 5743, 5792
+ 540, 5711, 5743, 5803
+ 550, 5745, 5837, 5950
+ 560, 5852, 5894, 5965
+ 570, 5685, 5908, 5971
+ 580, 5664, 5739, 5791
+ 590, 5667, 5769, 5882
+ 600, 5761, 5795, 5915
+ 610, 5804, 5829, 5868
+ 620, 5838, 5929, 6022
+ 630, 5649, 5873, 5989
+ 640, 5652, 5789, 5992
+ 650, 5733, 5813, 5846
+ 660, 5761, 5819, 5886
+ 670, 5762, 5823, 5870
+ 680, 5799, 5831, 5879
+ 690, 5765, 5878, 5960
+ 700, 5845, 5916, 6008
+ 710, 5880, 5950, 6009
+ 720, 5732, 5824, 5968
+ 730, 5731, 5780, 5832
+ 740, 5741, 5820, 5862
+ 750, 5762, 5827, 5867
+ 760, 5804, 5844, 5891
+ 770, 5808, 5845, 5912
+ 780, 5677, 5887, 5950
+ 790, 5906, 5939, 5981
+ 800, 5903, 5945, 6011
+ 810, 5637, 5920, 5971
+ 820, 5580, 5823, 6021
+ 830, 5697, 5754, 5806
+ 840, 5721, 5754, 5823
+ 850, 5805, 5867, 5949
+ 860, 5782, 5851, 5898
+ 870, 5800, 5860, 5939
+ 880, 5772, 5851, 5911
+ 890, 5810, 5876, 5938
+ 900, 5848, 5883, 5913
+ 910, 5808, 5906, 6012
+ 920, 5782, 5904, 5973
+ 930, 5836, 5928, 5968
+ 940, 5595, 5828, 5973
+ 950, 5581, 5700, 6000
+ 960, 5607, 5693, 5738
+ 970, 5645, 5721, 5811
+ 980, 5652, 5764, 5870
+ 990, 5710, 5805, 5897
+ 1000, 5701, 5801, 5945
+min:581347 avg:589632 max:597229 Time:1070 second(s) [00:17:50]
View
102 doc/benchmark/current/gwan/2.1.20/localhost/gwan_100_keepalive.csv
@@ -0,0 +1,102 @@
+ 1, 15354, 15394, 15430
+ 10, 21318, 21439, 21540
+ 20, 21142, 21279, 21351
+ 30, 21190, 21297, 21365
+ 40, 21277, 21353, 21410
+ 50, 21323, 21359, 21387
+ 60, 21264, 21316, 21371
+ 70, 21210, 21277, 21314
+ 80, 20861, 21160, 21255
+ 90, 20836, 21044, 21205
+ 100, 20768, 21011, 21139
+ 110, 20899, 20940, 20997
+ 120, 20776, 20831, 20873
+ 130, 20687, 20772, 20849
+ 140, 20410, 20622, 20705
+ 150, 20257, 20474, 20680
+ 160, 20252, 20414, 20573
+ 170, 19995, 20244, 20403
+ 180, 20019, 20234, 20455
+ 190, 19987, 20163, 20310
+ 200, 20015, 20218, 20324
+ 210, 20188, 20219, 20257
+ 220, 19819, 20024, 20177
+ 230, 19831, 20006, 20158
+ 240, 19813, 19981, 20109
+ 250, 19507, 19973, 20069
+ 260, 19776, 19961, 20047
+ 270, 19422, 19764, 19917
+ 280, 19676, 19818, 19965
+ 290, 19586, 19803, 19910
+ 300, 19738, 19824, 19919
+ 310, 19504, 19663, 19829
+ 320, 19543, 19729, 19768
+ 330, 19697, 19728, 19788
+ 340, 19464, 19677, 19752
+ 350, 19473, 19603, 19658
+ 360, 19480, 19599, 19653
+ 370, 19478, 19591, 19651
+ 380, 19415, 19507, 19611
+ 390, 19394, 19505, 19564
+ 400, 19317, 19432, 19521
+ 410, 19255, 19390, 19543
+ 420, 19181, 19351, 19447
+ 430, 19111, 19370, 19429
+ 440, 19078, 19314, 19525
+ 450, 19195, 19312, 19364
+ 460, 19163, 19279, 19443
+ 470, 19203, 19289, 19355
+ 480, 18986, 19198, 19355
+ 490, 19068, 19216, 19329
+ 500, 19069, 19204, 19365
+ 510, 19057, 19122, 19231
+ 520, 18785, 19112, 19248
+ 530, 18923, 19139, 19264
+ 540, 18968, 19051, 19141
+ 550, 18969, 19010, 19057
+ 560, 18931, 18971, 19003
+ 570, 18728, 18930, 18983
+ 580, 18862, 18912, 18941
+ 590, 18682, 18856, 18941
+ 600, 18837, 18874, 18913
+ 610, 18584, 18843, 18952
+ 620, 18758, 18877, 18995
+ 630, 18763, 18847, 18984
+ 640, 18599, 18837, 18980
+ 650, 18692, 18792, 18929
+ 660, 18631, 18767, 18885
+ 670, 18574, 18727, 18859
+ 680, 18373, 18615, 18720
+ 690, 18576, 18679, 18849
+ 700, 18483, 18630, 18668
+ 710, 18596, 18630, 18681
+ 720, 18535, 18661, 18794
+ 730, 18491, 18673, 18792
+ 740, 18494, 18696, 18780
+ 750, 18359, 18493, 18715
+ 760, 18110, 18471, 18561
+ 770, 18418, 18475, 18702
+ 780, 18409, 18565, 18714
+ 790, 18464, 18512, 18673
+ 800, 18531, 18564, 18598
+ 810, 18076, 18278, 18366
+ 820, 18239, 18376, 18567
+ 830, 18367, 18489, 18567
+ 840, 18275, 18458, 18579
+ 850, 18171, 18359, 18547
+ 860, 18127, 18330, 18495
+ 870, 17583, 18158, 18534
+ 880, 18027, 18109, 18344
+ 890, 18075, 18339, 18435
+ 900, 18113, 18269, 18363
+ 910, 18078, 18313, 18401
+ 920, 18047, 18234, 18335
+ 930, 18146, 18237, 18301
+ 940, 17980, 18060, 18300
+ 950, 17908, 18189, 18316
+ 960, 17721, 17962, 18305
+ 970, 17890, 18125, 18224
+ 980, 17728, 17966, 18204
+ 990, 17769, 18116, 18272
+ 1000, 17584, 18046, 18217
+min:1932356 avg:1948915 max:1960639 Time:1073 second(s) [00:17:53]
View
3 doc/benchmark/current/gwan/2.1.20/localhost/gwan_big_NO_keepalive.csv
@@ -0,0 +1,3 @@
+ 1, 1289, 1296, 1300
+* Non-2xx responses:2
+min:1289 avg:1296 max:1300 Time:11 second(s) [00:00:11]
View
3 doc/benchmark/current/gwan/2.1.20/localhost/gwan_big_keepalive.csv
@@ -0,0 +1,3 @@
+ 1, 1664, 1740, 1760
+* Non-2xx responses:3
+min:1664 avg:1740 max:1760 Time:12 second(s) [00:00:12]
View
102 doc/benchmark/current/gwan/2.1.20/stefano/csp_NO_keepalive.csv
@@ -0,0 +1,102 @@
+ 1, 2853, 2865, 2875
+ 10, 8516, 8572, 8632
+ 20, 7899, 7930, 7989
+ 30, 7551, 7601, 7664
+ 40, 7143, 7200, 7261
+ 50, 6826, 7006, 7098
+ 60, 6892, 6966, 7018
+ 70, 6743, 6875, 6939
+ 80, 6784, 6859, 6926
+ 90, 6780, 6875, 6907
+ 100, 6758, 6827, 6878
+ 110, 6754, 6806, 6838
+ 120, 6801, 6818, 6839
+ 130, 6757, 6808, 6841
+ 140, 6792, 6807, 6825
+ 150, 6773, 6813, 6846
+ 160, 6742, 6804, 6833
+ 170, 6761, 6780, 6797
+ 180, 6764, 6784, 6805
+ 190, 6777, 6807, 6825
+ 200, 6754, 6780, 6797
+ 210, 6715, 6768, 6827
+ 220, 6769, 6784, 6814
+ 230, 6778, 6794, 6811
+ 240, 6705, 6738, 6815
+ 250, 6708, 6720, 6736
+ 260, 6708, 6732, 6758
+ 270, 6703, 6719, 6729
+ 280, 6689, 6713, 6760
+ 290, 6743, 6762, 6777
+ 300, 6749, 6765, 6789
+ 310, 6718, 6728, 6746
+ 320, 6665, 6694, 6719
+ 330, 6763, 6785, 6805
+ 340, 6686, 6718, 6791
+ 350, 6768, 6791, 6804
+ 360, 6732, 6788, 6816
+ 370, 6649, 6668, 6694
+ 380, 6752, 6773, 6796
+ 390, 6607, 6675, 6794
+ 400, 6738, 6759, 6782
+ 410, 6680, 6760, 6782
+ 420, 6624, 6653, 6717
+ 430, 6716, 6740, 6769
+ 440, 6641, 6658, 6676
+ 450, 6681, 6695, 6706
+ 460, 6599, 6635, 6664
+ 470, 6548, 6578, 6637
+ 480, 6630, 6651, 6684
+ 490, 6562, 6595, 6627
+ 500, 6586, 6599, 6610
+ 510, 6568, 6593, 6618
+ 520, 6550, 6569, 6594
+ 530, 6531, 6550, 6559
+ 540, 6441, 6463, 6479
+ 550, 6499, 6532, 6554
+ 560, 6496, 6516, 6538
+ 570, 6523, 6529, 6537
+ 580, 6372, 6499, 6524
+ 590, 6424, 6444, 6481
+ 600, 6426, 6446, 6465
+ 610, 6447, 6464, 6486
+ 620, 6457, 6463, 6468
+ 630, 6437, 6448, 6464
+ 640, 6326, 6355, 6398
+ 650, 6370, 6402, 6417
+ 660, 6370, 6380, 6392
+ 670, 6412, 6419, 6430
+ 680, 6408, 6432, 6444
+ 690, 6400, 6420, 6437
+ 700, 6253, 6266, 6281
+ 710, 6323, 6338, 6358
+ 720, 6300, 6318, 6339
+ 730, 6307, 6336, 6393
+ 740, 6379, 6395, 6410
+ 750, 6329, 6391, 6407
+ 760, 6397, 6406, 6412
+ 770, 6403, 6407, 6411
+ 780, 6199, 6214, 6226
+ 790, 6230, 6254, 6275
+ 800, 6244, 6265, 6288
+ 810, 6233, 6256, 6271
+ 820, 6267, 6337, 6388
+ 830, 6378, 6391, 6400
+ 840, 6367, 6382, 6391
+ 850, 6370, 6396, 6411
+ 860, 6356, 6386, 6397
+ 870, 6393, 6401, 6414
+ 880, 6116, 6133, 6156
+ 890, 6180, 6203, 6225
+ 900, 6177, 6194, 6224
+ 910, 6182, 6192, 6211
+ 920, 6177, 6193, 6237
+ 930, 6203, 6339, 6417
+ 940, 6353, 6389, 6404
+ 950, 6380, 6393, 6412
+ 960, 6384, 6405, 6420
+ 970, 6366, 6387, 6403
+ 980, 6367, 6398, 6422
+ 990, 6372, 6403, 6434
+ 1000, 6367, 6409, 6422
+min:660841 avg:664122 max:667012 Time:1074 second(s) [00:17:54]
View
102 doc/benchmark/current/gwan/2.1.20/stefano/csp_keepalive.csv
@@ -0,0 +1,102 @@
+ 1, 5235, 5306, 5325
+ 10, 22338, 22466, 22561
+ 20, 22152, 22218, 22282
+ 30, 21562, 21672, 21797
+ 40, 21082, 21383, 21646
+ 50, 19814, 19956, 20059
+ 60, 19641, 19785, 19869
+ 70, 18605, 18928, 19088
+ 80, 18461, 18639, 18777
+ 90, 18462, 18509, 18619
+ 100, 18249, 18414, 18515
+ 110, 18335, 18423, 18487
+ 120, 18118, 18342, 18491
+ 130, 18254, 18365, 18477
+ 140, 18170, 18249, 18340
+ 150, 18131, 18226, 18342
+ 160, 18047, 18180, 18249
+ 170, 18077, 18177, 18282
+ 180, 17937, 18071, 18167
+ 190, 17974, 18083, 18176
+ 200, 17947, 18065, 18251
+ 210, 17973, 18116, 18235
+ 220, 17962, 18044, 18128
+ 230, 17943, 18065, 18225
+ 240, 17973, 18048, 18096
+ 250, 17894, 18031, 18111
+ 260, 17842, 17975, 18031
+ 270, 17854, 17946, 18037
+ 280, 17818, 17974, 18109
+ 290, 17825, 17947, 18057
+ 300, 17753, 17892, 17988
+ 310, 17770, 17853, 17893
+ 320, 17791, 17854, 17919
+ 330, 17717, 17859, 18022
+ 340, 17691, 17866, 18001
+ 350, 17724, 17813, 17909
+ 360, 17750, 17852, 17938
+ 370, 17599, 17765, 17906
+ 380, 17625, 17746, 17843
+ 390, 17674, 17741, 17798
+ 400, 17704, 17790, 17875
+ 410, 17570, 17674, 17729
+ 420, 17605, 17705, 17799
+ 430, 17554, 17655, 17737
+ 440, 17467, 17602, 17744
+ 450, 17495, 17583, 17712
+ 460, 17538, 17610, 17679
+ 470, 17525, 17587, 17675
+ 480, 17524, 17639, 17725
+ 490, 17398, 17486, 17572
+ 500, 17401, 17477, 17600
+ 510, 17384, 17453, 17528
+ 520, 17280, 17408, 17498
+ 530, 17302, 17440, 17583
+ 540, 17217, 17350, 17466
+ 550, 17276, 17330, 17422
+ 560, 17274, 17388, 17503
+ 570, 17336, 17442, 17579
+ 580, 17209, 17337, 17435
+ 590, 17260, 17393, 17496
+ 600, 17216, 17320, 17424
+ 610, 17306, 17349, 17402
+ 620, 17159, 17221, 17264
+ 630, 17206, 17266, 17306
+ 640, 17153, 17275, 17362
+ 650, 17157, 17263, 17310
+ 660, 17087, 17184, 17254
+ 670, 17106, 17201, 17294
+ 680, 17119, 17201, 17283
+ 690, 17088, 17166, 17224
+ 700, 16998, 17105, 17206
+ 710, 16398, 17067, 17217
+ 720, 15438, 15727, 16663
+ 730, 15298, 15477, 15554
+ 740, 15240, 15296, 15370
+ 750, 15261, 15300, 15342
+ 760, 15251, 15274, 15339
+ 770, 15179, 15229, 15302
+ 780, 15164, 15257, 15321
+ 790, 15218, 15249, 15291
+ 800, 15133, 15219, 15286
+ 810, 15127, 15200, 15242
+ 820, 15127, 15173, 15229
+ 830, 15121, 15172, 15216
+ 840, 15048, 15128, 15225
+ 850, 15054, 15087, 15135
+ 860, 15070, 15101, 15148
+ 870, 15040, 15071, 15116
+ 880, 15040, 15095, 15159
+ 890, 14972, 15037, 15199
+ 900, 15006, 15040, 15087
+ 910, 14972, 15013, 15057
+ 920, 14961, 15005, 15071
+ 930, 14965, 15019, 15078
+ 940, 14871, 14913, 14955
+ 950, 14852, 14911, 14945
+ 960, 14840, 14901, 14955
+ 970, 14792, 14883, 14979
+ 980, 14679, 14858, 14938
+ 990, 14704, 14779, 14949
+ 1000, 14701, 14762, 14847
+min:1714205 avg:1724987 max:1734947 Time:1110 second(s) [00:18:30]
View
102 doc/benchmark/current/gwan/2.1.20/stefano/gwan_1000_NO_keepalive.csv
@@ -0,0 +1,102 @@
+ 1, 2821, 2850, 2863
+ 10, 8475, 8534, 8589
+ 20, 7808, 7926, 8029
+ 30, 7539, 7587, 7617
+ 40, 7095, 7183, 7279
+ 50, 6872, 6985, 7107
+ 60, 6793, 6820, 6875
+ 70, 6742, 6783, 6851
+ 80, 6721, 6746, 6781
+ 90, 6721, 6745, 6766
+ 100, 6752, 6775, 6788
+ 110, 6686, 6711, 6731
+ 120, 6709, 6729, 6751
+ 130, 6720, 6733, 6752
+ 140, 6706, 6714, 6732
+ 150, 6724, 6744, 6753
+ 160, 6701, 6729, 6755
+ 170, 6720, 6734, 6755
+ 180, 6684, 6709, 6731
+ 190, 6726, 6740, 6757
+ 200, 6711, 6745, 6770
+ 210, 6682, 6708, 6735
+ 220, 6705, 6739, 6776
+ 230, 6692, 6730, 6767
+ 240, 6672, 6701, 6717
+ 250, 6694, 6718, 6747
+ 260, 6711, 6728, 6744
+ 270, 6678, 6712, 6749
+ 280, 6664, 6688, 6714
+ 290, 6633, 6668, 6692
+ 300, 6659, 6711, 6763
+ 310, 6686, 6728, 6752
+ 320, 6659, 6685, 6718
+ 330, 6669, 6708, 6780
+ 340, 6692, 6716, 6750
+ 350, 6635, 6663, 6715
+ 360, 6703, 6735, 6765
+ 370, 6637, 6647, 6666
+ 380, 6682, 6706, 6727
+ 390, 6596, 6629, 6697
+ 400, 6654, 6684, 6760
+ 410, 6691, 6707, 6718
+ 420, 6628, 6648, 6678
+ 430, 6672, 6694, 6710
+ 440, 6576, 6595, 6610
+ 450, 6596, 6632, 6675
+ 460, 6605, 6643, 6662
+ 470, 6525, 6546, 6566
+ 480, 6574, 6629, 6660
+ 490, 6598, 6618, 6631
+ 500, 6446, 6470, 6492
+ 510, 6484, 6568, 6612
+ 520, 6558, 6595, 6615
+ 530, 6407, 6555, 6580
+ 540, 6396, 6409, 6430
+ 550, 6529, 6559, 6579
+ 560, 6527, 6540, 6554
+ 570, 6510, 6545, 6565
+ 580, 6354, 6366, 6397
+ 590, 6353, 6419, 6488
+ 600, 6457, 6486, 6506
+ 610, 6470, 6497, 6513
+ 620, 6323, 6456, 6504
+ 630, 6254, 6299, 6347
+ 640, 6264, 6283, 6316
+ 650, 6405, 6437, 6470
+ 660, 6409, 6436, 6447
+ 670, 6379, 6418, 6440
+ 680, 6286, 6366, 6445
+ 690, 6261, 6286, 6294
+ 700, 6206, 6234, 6257
+ 710, 6249, 6362, 6388
+ 720, 6319, 6345, 6370
+ 730, 6318, 6346, 6367
+ 740, 6324, 6345, 6364
+ 750, 6205, 6237, 6251
+ 760, 6239, 6248, 6255
+ 770, 6143, 6192, 6254
+ 780, 6136, 6149, 6162
+ 790, 6243, 6266, 6293
+ 800, 6263, 6286, 6303
+ 810, 6263, 6292, 6307
+ 820, 6270, 6285, 6312
+ 830, 6213, 6275, 6311
+ 840, 6208, 6226, 6235
+ 850, 6192, 6227, 6240
+ 860, 6220, 6228, 6236
+ 870, 6081, 6211, 6250
+ 880, 6067, 6086, 6107
+ 890, 6102, 6168, 6222
+ 900, 6200, 6219, 6246
+ 910, 6169, 6195, 6214
+ 920, 6187, 6208, 6235
+ 930, 6182, 6209, 6222
+ 940, 6202, 6212, 6226
+ 950, 6185, 6210, 6227
+ 960, 6213, 6238, 6247
+ 970, 6173, 6221, 6239
+ 980, 6197, 6223, 6239
+ 990, 6228, 6246, 6257
+ 1000, 5952, 6066, 6269
+min:654515 avg:658183 max:661375 Time:1074 second(s) [00:17:54]
View
102 doc/benchmark/current/gwan/2.1.20/stefano/gwan_1000_keepalive.csv
@@ -0,0 +1,102 @@
+ 1, 5265, 5309, 5332
+ 10, 22816, 22961, 23087
+ 20, 22513, 22589, 22754
+ 30, 20692, 20892, 21053
+ 40, 20346, 20514, 20743
+ 50, 19342, 19649, 19879
+ 60, 18554, 18623, 18688
+ 70, 18227, 18312, 18380
+ 80, 18162, 18209, 18256
+ 90, 18046, 18118, 18165
+ 100, 18025, 18061, 18098
+ 110, 17989, 18031, 18112
+ 120, 17935, 17965, 17999
+ 130, 17919, 17954, 17982
+ 140, 17829, 17860, 17900
+ 150, 17802, 17842, 17870
+ 160, 17756, 17799, 17832
+ 170, 17764, 17796, 17822
+ 180, 17705, 17741, 17787
+ 190, 17655, 17715, 17797
+ 200, 17624, 17677, 17732
+ 210, 17631, 17680, 17741
+ 220, 17530, 17602, 17661
+ 230, 17594, 17641, 17672
+ 240, 17500, 17574, 17649
+ 250, 17530, 17612, 17692
+ 260, 17527, 17578, 17629
+ 270, 17457, 17545, 17637
+ 280, 17454, 17505, 17599
+ 290, 17422, 17487, 17536
+ 300, 17414, 17463, 17517
+ 310, 17435, 17461, 17485
+ 320, 17372, 17457, 17505
+ 330, 15936, 17260, 17441
+ 340, 17319, 17407, 17485
+ 350, 17350, 17396, 17444
+ 360, 17372, 17405, 17441
+ 370, 17288, 17342, 17403
+ 380, 17248, 17313, 17390
+ 390, 17210, 17273, 17328
+ 400, 17235, 17278, 17308
+ 410, 17202, 17251, 17300
+ 420, 17199, 17245, 17297
+ 430, 17153, 17226, 17279
+ 440, 17119, 17194, 17249
+ 450, 17144, 17186, 17209
+ 460, 17103, 17170, 17207
+ 470, 17128, 17150, 17185
+ 480, 17089, 17135, 17195
+ 490, 16993, 17097, 17178
+ 500, 16973, 17064, 17113
+ 510, 16993, 17031, 17094
+ 520, 16956, 17003, 17112
+ 530, 16989, 17037, 17087
+ 540, 16981, 17013, 17058
+ 550, 16956, 16987, 17026
+ 560, 16956, 16982, 17024
+ 570, 16948, 16987, 17025
+ 580, 16918, 16965, 16992
+ 590, 16818, 16904, 16958
+ 600, 16852, 16888, 16935
+ 610, 16848, 16923, 16991
+ 620, 16836, 16882, 16961
+ 630, 16806, 16877, 16924
+ 640, 16774, 16831, 16881
+ 650, 16786, 16844, 16922
+ 660, 16768, 16811, 16863
+ 670, 16684, 16818, 16867
+ 680, 16688, 16764, 16816
+ 690, 16744, 16782, 16827
+ 700, 14760, 15751, 16748
+ 710, 14748, 14821, 14872
+ 720, 14685, 14775, 14815
+ 730, 14646, 14720, 14849
+ 740, 14598, 14631, 14682
+ 750, 14565, 14635, 14694
+ 760, 14524, 14627, 14671
+ 770, 14557, 14633, 14732
+ 780, 14502, 14553, 14603
+ 790, 14495, 14571, 14629
+ 800, 14573, 14587, 14612
+ 810, 14439, 14529, 14650
+ 820, 14378, 14459, 14516
+ 830, 14458, 14489, 14525
+ 840, 14456, 14493, 14555
+ 850, 14386, 14523, 14613
+ 860, 14399, 14439, 14484
+ 870, 14414, 14452, 14511
+ 880, 14395, 14448, 14496
+ 890, 14425, 14466, 14526
+ 900, 14278, 14406, 14514
+ 910, 14303, 14378, 14443
+ 920, 14304, 14355, 14444
+ 930, 14293, 14337, 14407
+ 940, 14317, 14364, 14408
+ 950, 14160, 14311, 14422
+ 960, 14235, 14272, 14313
+ 970, 14133, 14224, 14285
+ 980, 14107, 14231, 14299
+ 990, 14098, 14245, 14348
+ 1000, 14164, 14246, 14313
+min:1664989 avg:1673914 max:1681385 Time:1108 second(s) [00:18:28]
View
102 doc/benchmark/current/gwan/2.1.20/stefano/gwan_100_NO_keepalive.csv
@@ -0,0 +1,102 @@
+ 1, 2836, 2856, 2868
+ 10, 8477, 8560, 8688
+ 20, 0, 7162, 8010
+ 30, 7619, 7642, 7681
+ 40, 7156, 7206, 7255
+ 50, 6880, 7046, 7146
+ 60, 6822, 6854, 6924
+ 70, 6781, 6813, 6909
+ 80, 6801, 6816, 6831
+ 90, 6767, 6784, 6810
+ 100, 6773, 6793, 6816
+ 110, 6715, 6763, 6803
+ 120, 6741, 6762, 6796
+ 130, 6744, 6765, 6777
+ 140, 6726, 6758, 6790
+ 150, 6753, 6768, 6804
+ 160, 6728, 6753, 6783
+ 170, 6755, 6775, 6792
+ 180, 6709, 6750, 6775
+ 190, 6757, 6774, 6798
+ 200, 6747, 6763, 6779
+ 210, 6717, 6729, 6744
+ 220, 6749, 6777, 6801
+ 230, 6743, 6783, 6804
+ 240, 6709, 6726, 6746
+ 250, 6704, 6719, 6730
+ 260, 6716, 6734, 6746
+ 270, 6700, 6719, 6753
+ 280, 6701, 6714, 6730
+ 290, 6706, 6728, 6745
+ 300, 6725, 6762, 6798
+ 310, 6746, 6768, 6784
+ 320, 6674, 6683, 6698
+ 330, 6698, 6730, 6778
+ 340, 6714, 6734, 6751
+ 350, 6655, 6705, 6740
+ 360, 6712, 6739, 6765
+ 370, 6654, 6681, 6739
+ 380, 6706, 6716, 6729
+ 390, 6631, 6685, 6736
+ 400, 6687, 6707, 6716
+ 410, 6707, 6722, 6729
+ 420, 6647, 6660, 6689
+ 430, 6701, 6723, 6737
+ 440, 6605, 6681, 6745
+ 450, 6613, 6625, 6640
+ 460, 6638, 6671, 6688
+ 470, 6545, 6564, 6578
+ 480, 6566, 6619, 6666
+ 490, 6635, 6648, 6660
+ 500, 6492, 6500, 6512
+ 510, 6490, 6556, 6628
+ 520, 6590, 6610, 6631
+ 530, 6587, 6598, 6621
+ 540, 6420, 6435, 6450
+ 550, 6562, 6573, 6585
+ 560, 6542, 6554, 6567
+ 570, 6571, 6580, 6587
+ 580, 6376, 6418, 6431
+ 590, 6355, 6371, 6377
+ 600, 6480, 6498, 6517
+ 610, 6482, 6515, 6532
+ 620, 6353, 6450, 6501
+ 630, 6294, 6357, 6375
+ 640, 6317, 6323, 6330
+ 650, 6450, 6459, 6470
+ 660, 6411, 6433, 6453
+ 670, 6399, 6425, 6441
+ 680, 6323, 6401, 6461
+ 690, 6287, 6305, 6317
+ 700, 6222, 6235, 6246
+ 710, 6358, 6364, 6371
+ 720, 6317, 6344, 6357
+ 730, 6355, 6364, 6375
+ 740, 6247, 6329, 6360
+ 750, 6220, 6254, 6271
+ 760, 6256, 6264, 6271
+ 770, 6149, 6234, 6275
+ 780, 6145, 6164, 6181
+ 790, 6242, 6252, 6263
+ 800, 6246, 6263, 6285
+ 810, 6237, 6262, 6285
+ 820, 6247, 6277, 6302
+ 830, 6240, 6262, 6302
+ 840, 6244, 6255, 6263
+ 850, 6255, 6263, 6276
+ 860, 6221, 6256, 6270
+ 870, 6080, 6251, 6283
+ 880, 6082, 6099, 6116
+ 890, 6195, 6208, 6228
+ 900, 6191, 6206, 6226
+ 910, 6188, 6197, 6208
+ 920, 6178, 6197, 6214
+ 930, 6178, 6196, 6215
+ 940, 6211, 6243, 6256
+ 950, 6222, 6242, 6259
+ 960, 6236, 6262, 6277
+ 970, 6198, 6249, 6269
+ 980, 6235, 6260, 6278
+ 990, 6255, 6272, 6292
+ 1000, 5968, 6105, 6301
+min:649390 avg:659605 max:663161 Time:1073 second(s) [00:17:53]
View
102 doc/benchmark/current/gwan/2.1.20/stefano/gwan_100_keepalive.csv
@@ -0,0 +1,102 @@
+ 1, 5228, 5243, 5246
+ 10, 22777, 22837, 22987
+ 20, 22382, 22458, 22526
+ 30, 21700, 21782, 21854
+ 40, 21151, 21213, 21300
+ 50, 19987, 20564, 21059
+ 60, 19232, 19302, 19356
+ 70, 19175, 19347, 19421
+ 80, 19032, 19181, 19297
+ 90, 18815, 19001, 19130
+ 100, 18828, 18969, 19076
+ 110, 18810, 18906, 19071
+ 120, 18723, 18851, 18939
+ 130, 18678, 18804, 18973
+ 140, 18618, 18791, 18930
+ 150, 18601, 18747, 18865
+ 160, 18582, 18711, 18821
+ 170, 18489, 18690, 18852
+ 180, 18500, 18646, 18773
+ 190, 18541, 18650, 18735
+ 200, 18535, 18641, 18746
+ 210, 18471, 18647, 18799
+ 220, 18507, 18601, 18649
+ 230, 18461, 18574, 18706
+ 240, 18475, 18577, 18712
+ 250, 18439, 18532, 18707
+ 260, 18397, 18590, 18682
+ 270, 18389, 18583, 18708
+ 280, 18309, 18439, 18609
+ 290, 18358, 18441, 18573
+ 300, 18310, 18478, 18619
+ 310, 18349, 18486, 18658
+ 320, 18180, 18395, 18568
+ 330, 18203, 18398, 18560
+ 340, 18232, 18397, 18571
+ 350, 18259, 18360, 18493
+ 360, 18201, 18361, 18529
+ 370, 18111, 18328, 18443
+ 380, 18188, 18284, 18423
+ 390, 18169, 18324, 18433
+ 400, 18086, 18268, 18369
+ 410, 18062, 18238, 18398
+ 420, 18138, 18256, 18371
+ 430, 18015, 18213, 18340
+ 440, 18007, 18159, 18288
+ 450, 17999, 18109, 18202
+ 460, 18017, 18189, 18280
+ 470, 18004, 18124, 18221
+ 480, 17953, 18096, 18257
+ 490, 18007, 18115, 18292
+ 500, 17891, 18067, 18218
+ 510, 17975, 18069, 18197
+ 520, 17870, 18047, 18258
+ 530, 17837, 17995, 18175
+ 540, 17699, 17928, 18015
+ 550, 17816, 17915, 17983
+ 560, 17637, 17825, 17978
+ 570, 17708, 17864, 17962
+ 580, 17718, 17826, 17928
+ 590, 17761, 17838, 17911
+ 600, 17524, 17690, 17837
+ 610, 17554, 17705, 17833
+ 620, 17273, 17603, 17773
+ 630, 17441, 17617, 17820
+ 640, 17411, 17532, 17656
+ 650, 17358, 17545, 17633
+ 660, 17181, 17386, 17503
+ 670, 17240, 17381, 17562
+ 680, 17234, 17374, 17496
+ 690, 17024, 17351, 17484
+ 700, 17124, 17245, 17377
+ 710, 16922, 17297, 17436
+ 720, 15166, 16518, 17454
+ 730, 15025, 15333, 16301
+ 740, 14867, 14953, 15080
+ 750, 14824, 14909, 14985
+ 760, 14822, 14902, 14979
+ 770, 14833, 14867, 14923
+ 780, 14725, 14814, 14914
+ 790, 14794, 14845, 14889
+ 800, 14724, 14801, 14880
+ 810, 14714, 14833, 14956
+ 820, 14738, 14843, 14944
+ 830, 14717, 14765, 14844
+ 840, 14644, 14753, 14848
+ 850, 14703, 14783, 14865
+ 860, 14675, 14762, 14809
+ 870, 14642, 14695, 14754
+ 880, 14603, 14673, 14741
+ 890, 14626, 14687, 14775
+ 900, 14667, 14716, 14787
+ 910, 14689, 14720, 14747
+ 920, 14558, 14617, 14683
+ 930, 14560, 14617, 14682
+ 940, 14596, 14635, 14701
+ 950, 14452, 14589, 14648
+ 960, 14496, 14605, 14669
+ 970, 14377, 14506, 14668
+ 980, 14422, 14500, 14590
+ 990, 14454, 14492, 14566
+ 1000, 14338, 14455, 14575
+min:1733329 avg:1748184 max:1761709 Time:1107 second(s) [00:18:27]
View
89 doc/benchmark/current/gwan/2.1.20/stefano/gwan_big_NO_keepalive.csv
@@ -0,0 +1,89 @@
+ 1, 0, 0, 0
+ 10, 0, 0, 0
+ 20, 0, 0, 0
+ 30, 0, 0, 0
+ 40, 0, 0, 0
+ 50, 0, 0, 0
+ 60, 0, 0, 0
+ 70, 0, 0, 0
+ 80, 0, 0, 0
+ 90, 0, 0, 0
+ 100, 0, 0, 0
+ 110, 0, 0, 2
+ 120, 0, 0, 0
+ 130, 0, 0, 0
+ 140, 0, 0, 0
+ 150, 0, 0, 0
+ 160, 0, 0, 0
+ 170, 0, 0, 0
+ 180, 0, 0, 0
+ 190, 0, 0, 0
+ 200, 0, 0, 0
+ 210, 0, 0, 0
+ 220, 0, 0, 0
+ 230, 0, 0, 0
+ 240, 0, 0, 1
+ 250, 0, 0, 0
+ 260, 0, 0, 0
+ 270, 0, 0, 0
+ 280, 0, 0, 0
+ 290, 0, 0, 0
+ 300, 0, 0, 0
+ 310, 0, 0, 0
+ 320, 0, 0, 0
+ 330, 0, 0, 0
+ 340, 0, 0, 0
+ 350, 0, 0, 0
+ 360, 0, 0, 0
+ 370, 0, 0, 0
+ 380, 0, 0, 0
+ 390, 0, 0, 0
+ 400, 0, 0, 0
+ 410, 0, 0, 0
+ 420, 0, 0, 0
+ 430, 0, 0, 0
+ 440, 0, 0, 0
+ 450, 0, 0, 0
+ 460, 0, 0, 0
+ 470, 0, 0, 0
+ 480, 0, 0, 0
+ 490, 0, 0, 0
+ 500, 0, 0, 0
+ 510, 0, 0, 0
+ 520, 0, 0, 0
+ 530, 0, 0, 0
+ 540, 0, 0, 0
+ 550, 0, 0, 0
+ 560, 0, 0, 0
+ 570, 0, 0, 0
+ 580, 0, 0, 0
+ 590, 0, 0, 0
+ 600, 0, 0, 0
+ 610, 0, 0, 0
+ 620, 0, 0, 0
+ 630, 0, 0, 0
+ 640, 0, 0, 0
+ 650, 0, 0, 0
+ 660, 0, 0, 0
+ 670, 0, 0, 0