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)
---------------------------------

HttpClient3vsHttpClient4vsHttpCore (last edited 2011-03-11 07:55:07 by OlegKalnichevski)