Client side HTTP performance benchmarks
Benchmark source code
In order to execute the benchmark locally install the latest snapshot of HttpClient from the Apache SVN repository and an optional module httpclient-benchmark
http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/httpclient-benchmark/
and then execute mvn test command of the httpclient-benchmark module
Specs of the system used to execute the benchmark
CPU: Intel(R) Core(TM) i3 CPU M 370 @ 2.40GHz Processor cache size: 3072 KB RAM MemTotal: 3410696 kB
Ubuntu Linux 10.10 Linux ubuntu 2.6.35-24-generic #42-Ubuntu SMP Thu Dec 2 01:41:57 UTC 2010 i686 GNU/Linux
Sun JRE 1.6.0 java version "1.6.0_18" Java(TM) SE Runtime Environment (build 1.6.0_18-b07) Java HotSpot(TM) Server VM (build 16.0-b13, mixed mode)
500'000 requests / up to 20 concurrent connections
================================= HTTP agent: Apache HttpClient 3.1 --------------------------------- 500000 GET requests --------------------------------- Document URI: http://localhost:40225/rnd?c=2048 Document Length: 2048 bytes Concurrency level: 20 Time taken for tests: 30.921 seconds Complete requests: 500000 Failed requests: 0 Content transferred: 1024000000 bytes Requests per second: 16170.24 [#/sec] (mean) --------------------------------- 500000 POST requests --------------------------------- Document URI: http://localhost:40225/echo Document Length: 2048 bytes Concurrency level: 20 Time taken for tests: 29.782 seconds Complete requests: 500000 Failed requests: 0 Content transferred: 1024000000 bytes Requests per second: 16788.664 [#/sec] (mean) --------------------------------- ================================= HTTP agent: JRE HTTP 1.6.0_18 --------------------------------- 500000 GET requests --------------------------------- Document URI: http://localhost:40225/rnd?c=2048 Document Length: 2048 bytes Concurrency level: 20 Time taken for tests: 23.036 seconds Complete requests: 500000 Failed requests: 0 Content transferred: 1024000000 bytes Requests per second: 21705.158 [#/sec] (mean) --------------------------------- 500000 POST requests --------------------------------- Document URI: http://localhost:40225/echo Document Length: 2048 bytes Concurrency level: 20 Time taken for tests: 29.616 seconds Complete requests: 500000 Failed requests: 0 Content transferred: 1024000000 bytes Requests per second: 16882.766 [#/sec] (mean) --------------------------------- ================================= HTTP agent: Apache HttpCore 4 (ver: 4.1) --------------------------------- 500000 GET requests --------------------------------- Document URI: http://localhost:40225/rnd?c=2048 Document Length: 2048 bytes Concurrency level: 20 Time taken for tests: 15.904 seconds Complete requests: 500000 Failed requests: 0 Content transferred: 1024000000 bytes Requests per second: 31438.63 [#/sec] (mean) --------------------------------- 500000 POST requests --------------------------------- Document URI: http://localhost:40225/echo Document Length: 2048 bytes Concurrency level: 20 Time taken for tests: 20.63 seconds Complete requests: 500000 Failed requests: 0 Content transferred: 1024000000 bytes Requests per second: 24236.549 [#/sec] (mean) --------------------------------- ================================= HTTP agent: Apache HttpClient 4 (ver: 4.2-alpha1-SNAPSHOT) --------------------------------- 500000 GET requests --------------------------------- Document URI: http://localhost:40225/rnd?c=2048 Document Length: 2048 bytes Concurrency level: 20 Time taken for tests: 20.773 seconds Complete requests: 500000 Failed requests: 0 Content transferred: 1024000000 bytes Requests per second: 24069.705 [#/sec] (mean) --------------------------------- 500000 POST requests --------------------------------- Document URI: http://localhost:40225/echo Document Length: 2048 bytes Concurrency level: 20 Time taken for tests: 25.088 seconds Complete requests: 500000 Failed requests: 0 Content transferred: 1024000000 bytes Requests per second: 19929.848 [#/sec] (mean) --------------------------------- ================================= HTTP agent: Jetty 7.3.1.v20110307 --------------------------------- 500000 GET requests --------------------------------- Document URI: http://localhost:40225/rnd?c=2048 Document Length: 2048 bytes Concurrency level: 20 Time taken for tests: 28.205 seconds Complete requests: 500000 Failed requests: 0 Content transferred: 1024000000 bytes Requests per second: 17727.354 [#/sec] (mean) --------------------------------- 500000 POST requests --------------------------------- Document URI: http://localhost:40225/echo Document Length: 2048 bytes Concurrency level: 20 Time taken for tests: 28.045 seconds Complete requests: 500000 Failed requests: 0 Content transferred: 1024000000 bytes Requests per second: 17828.49 [#/sec] (mean) --------------------------------- ================================= HTTP agent: Ning async HTTP client 1.5.0 --------------------------------- 500000 GET requests --------------------------------- Document URI: http://localhost:40225/rnd?c=2048 Document Length: 2048 bytes Concurrency level: 20 Time taken for tests: 46.451 seconds Complete requests: 500000 Failed requests: 0 Content transferred: 1024000000 bytes Requests per second: 10764.031 [#/sec] (mean) --------------------------------- 500000 POST requests --------------------------------- Document URI: http://localhost:40225/echo Document Length: 2048 bytes Concurrency level: 20 Time taken for tests: 49.57 seconds Complete requests: 500000 Failed requests: 0 Content transferred: 1024000000 bytes Requests per second: 10086.746 [#/sec] (mean) ---------------------------------
500'000 requests / up to 250 concurrent connections
================================= HTTP agent: Apache HttpClient 3.1 --------------------------------- 500000 GET requests --------------------------------- Document URI: http://localhost:35128/rnd?c=2048 Document Length: 2048 bytes Concurrency level: 250 Time taken for tests: 61.06 seconds Complete requests: 500000 Failed requests: 0 Content transferred: 1024000000 bytes Requests per second: 8188.6665 [#/sec] (mean) --------------------------------- 500000 POST requests --------------------------------- Document URI: http://localhost:35128/echo Document Length: 2048 bytes Concurrency level: 250 Time taken for tests: 51.057 seconds Complete requests: 500000 Failed requests: 0 Content transferred: 1024000000 bytes Requests per second: 9792.977 [#/sec] (mean) --------------------------------- ================================= HTTP agent: JRE HTTP 1.6.0_18 --------------------------------- 500000 GET requests --------------------------------- Document URI: http://localhost:35128/rnd?c=2048 Document Length: 2048 bytes Concurrency level: 250 Time taken for tests: 34.611 seconds Complete requests: 500000 Failed requests: 0 Content transferred: 1024000000 bytes Requests per second: 14446.274 [#/sec] (mean) --------------------------------- 500000 POST requests --------------------------------- Document URI: http://localhost:35128/echo Document Length: 2048 bytes Concurrency level: 250 Time taken for tests: 34.823 seconds Complete requests: 500000 Failed requests: 0 Content transferred: 1024000000 bytes Requests per second: 14358.325 [#/sec] (mean) --------------------------------- ================================= HTTP agent: Apache HttpCore 4 (ver: 4.1) --------------------------------- 500000 GET requests --------------------------------- Document URI: http://localhost:35128/rnd?c=2048 Document Length: 2048 bytes Concurrency level: 250 Time taken for tests: 25.373 seconds Complete requests: 500000 Failed requests: 0 Content transferred: 1024000000 bytes Requests per second: 19705.988 [#/sec] (mean) --------------------------------- 500000 POST requests --------------------------------- Document URI: http://localhost:35128/echo Document Length: 2048 bytes Concurrency level: 250 Time taken for tests: 28.066 seconds Complete requests: 500000 Failed requests: 0 Content transferred: 1024000000 bytes Requests per second: 17815.15 [#/sec] (mean) --------------------------------- ================================= HTTP agent: Apache HttpClient 4 (ver: 4.2-alpha1-SNAPSHOT) --------------------------------- 500000 GET requests --------------------------------- Document URI: http://localhost:35128/rnd?c=2048 Document Length: 2048 bytes Concurrency level: 250 Time taken for tests: 23.068 seconds Complete requests: 500000 Failed requests: 0 Content transferred: 1024000000 bytes Requests per second: 21675.047 [#/sec] (mean) --------------------------------- 500000 POST requests --------------------------------- Document URI: http://localhost:35128/echo Document Length: 2048 bytes Concurrency level: 250 Time taken for tests: 27.366 seconds Complete requests: 500000 Failed requests: 0 Content transferred: 1024000000 bytes Requests per second: 18270.848 [#/sec] (mean) --------------------------------- ================================= HTTP agent: Jetty 7.3.1.v20110307 --------------------------------- 500000 GET requests --------------------------------- Document URI: http://localhost:35128/rnd?c=2048 Document Length: 2048 bytes Concurrency level: 250 Time taken for tests: 23.919 seconds Complete requests: 500000 Failed requests: 0 Content transferred: 1024000000 bytes Requests per second: 20903.883 [#/sec] (mean) --------------------------------- 500000 POST requests --------------------------------- Document URI: http://localhost:35128/echo Document Length: 2048 bytes Concurrency level: 250 Time taken for tests: 27.397 seconds Complete requests: 500000 Failed requests: 0 Content transferred: 1024000000 bytes Requests per second: 18250.174 [#/sec] (mean) --------------------------------- ================================= HTTP agent: Ning async HTTP client 1.5.0 --------------------------------- 500000 GET requests --------------------------------- Document URI: http://localhost:35128/rnd?c=2048 Document Length: 2048 bytes Concurrency level: 250 Time taken for tests: 42.94 seconds Complete requests: 500000 Failed requests: 0 Content transferred: 1024000000 bytes Requests per second: 11644.155 [#/sec] (mean) --------------------------------- 500000 POST requests --------------------------------- Document URI: http://localhost:35128/echo Document Length: 2048 bytes Concurrency level: 250 Time taken for tests: 49.779 seconds Complete requests: 500000 Failed requests: 0 Content transferred: 1024000000 bytes Requests per second: 10044.396 [#/sec] (mean) ---------------------------------