-
Notifications
You must be signed in to change notification settings - Fork 7
Benchmarks
Paul Horn edited this page Jul 29, 2014
·
1 revision
I ran some completly unscientific, non significant benchmarks [^1].
I compared RxRedis against
(*): these clients only support synchronous, blocking operations
For every test, I would
- open a new connection
- send 250.000 PING requests
- close the connection
Each segment is professionally [^1] measured. I used asynchronous operations wherever possible, but waitet for the last PING to complete, before measuring the time. For every client, I startet a new VM, but did no warm-up rounds.
^1: System.currentTimeMillis()
| Segment | Time |
|---|---|
| Connection | 600 ms |
| Requests | 6.92 s |
| Shutdown | 10 ms |
~> PING @ 36100 Hz
Size: 16 MB
com.twitter:finagle-redis_2.10:6.18.0
+-com.twitter:finagle-core_2.10:6.18.0
| +-com.twitter:util-app_2.10:6.18.0
| | +-com.twitter:util-core_2.10:6.18.0
| |
| +-com.twitter:util-collection_2.10:6.18.0
| | +-com.google.code.findbugs:jsr305:2.0.1
| | +-com.google.guava:guava:16.0.1
| | +-com.twitter:util-core_2.10:6.18.0
| | +-commons-collections:commons-collections:3.2.1
| | +-javax.inject:javax.inject:1
| |
| +-com.twitter:util-core_2.10:6.18.0
| +-com.twitter:util-hashing_2.10:6.18.0
| +-com.twitter:util-jvm_2.10:6.18.0
| | +-com.twitter:util-app_2.10:6.18.0
| | | +-com.twitter:util-core_2.10:6.18.0
| | |
| | +-com.twitter:util-core_2.10:6.18.0
| |
| +-com.twitter:util-logging_2.10:6.18.0
| | +-com.twitter:util-app_2.10:6.18.0
| | | +-com.twitter:util-core_2.10:6.18.0
| | |
| | +-com.twitter:util-core_2.10:6.18.0
| |
| +-io.netty:netty:3.9.1.Final
|
+-com.twitter:util-logging_2.10:6.18.0
+-com.twitter:util-app_2.10:6.18.0
| +-com.twitter:util-core_2.10:6.18.0
|
+-com.twitter:util-core_2.10:6.18.0
| Segment | Time |
|---|---|
| Connection | 10 ms |
| Requests | 10.77 s |
| Shutdown | <1 ms |
~> PING @ 23210 Hz
Size: 412 KB
redis.clients:jedis:2.5.1
+-org.apache.commons:commons-pool2:2.0
| Segment | Time |
|---|---|
| Connection | 200 ms |
| Requests | 2.11 s |
| Shutdown | 2.21 s |
~> PING @ 118640 Hz
Size: 2.9 MB
org.redisson:redisson:1.1.5
+-com.fasterxml.jackson.core:jackson-core:2.3.3
+-com.fasterxml.jackson.core:jackson-databind:2.3.3
| +-com.fasterxml.jackson.core:jackson-annotations:2.3.0
| +-com.fasterxml.jackson.core:jackson-core:2.3.3
|
+-io.netty:netty-buffer:4.0.19.Final
| +-io.netty:netty-common:4.0.19.Final
|
+-io.netty:netty-codec-http:4.0.19.Final
| +-io.netty:netty-codec:4.0.19.Final
| | +-io.netty:netty-transport:4.0.19.Final
| | +-io.netty:netty-buffer:4.0.19.Final
| | +-io.netty:netty-common:4.0.19.Final
| |
| +-io.netty:netty-handler:4.0.19.Final
| +-io.netty:netty-buffer:4.0.19.Final
| | +-io.netty:netty-common:4.0.19.Final
| |
| +-io.netty:netty-codec:4.0.19.Final
| | +-io.netty:netty-transport:4.0.19.Final
| | +-io.netty:netty-buffer:4.0.19.Final
| | +-io.netty:netty-common:4.0.19.Final
| |
| +-io.netty:netty-transport:4.0.19.Final
| +-io.netty:netty-buffer:4.0.19.Final
| +-io.netty:netty-common:4.0.19.Final
|
+-io.netty:netty-codec:4.0.19.Final
| +-io.netty:netty-transport:4.0.19.Final
| +-io.netty:netty-buffer:4.0.19.Final
| +-io.netty:netty-common:4.0.19.Final
|
+-io.netty:netty-common:4.0.19.Final
+-io.netty:netty-handler:4.0.19.Final
| +-io.netty:netty-buffer:4.0.19.Final
| | +-io.netty:netty-common:4.0.19.Final
| |
| +-io.netty:netty-codec:4.0.19.Final
| | +-io.netty:netty-transport:4.0.19.Final
| | +-io.netty:netty-buffer:4.0.19.Final
| | +-io.netty:netty-common:4.0.19.Final
| |
| +-io.netty:netty-transport:4.0.19.Final
| +-io.netty:netty-buffer:4.0.19.Final
| +-io.netty:netty-common:4.0.19.Final
|
+-io.netty:netty-transport:4.0.19.Final
| +-io.netty:netty-buffer:4.0.19.Final
| +-io.netty:netty-common:4.0.19.Final
|
+-org.slf4j:slf4j-api:1.7.6
| Segment | Time |
|---|---|
| Connection | 50 ms |
| Requests | 12.67 s |
| Shutdown | <1 ms |
~> PING @ 19740 Hz
Size: 8.7 MB
net.debasishg:redisclient_2.11:2.13
+-com.typesafe.akka:akka-actor_2.11:2.3.2
| +-com.typesafe:config:1.2.0
| +-org.scala-lang:scala-library:2.11.0
|
+-commons-pool:commons-pool:1.6
+-org.slf4j:slf4j-api:1.7.2
| Segment | Time |
|---|---|
| Connection | 220 ms |
| Requests | 2.47 s |
| Shutdown | 20 ms |
~> PING @ 101200 Hz
Size: 7.4 MB
de.knutwalker:rx-redis-scala_2.11:0.3.0
+-com.netflix.rxjava:rxjava-scala:0.19.1
| +-com.netflix.rxjava:rxjava-core:0.19.1
|
+-de.knutwalker:rx-redis-client_2.11:0.3.0
+-com.netflix.rxjava:rxjava-core:0.19.1
+-de.knutwalker:rx-redis-pipeline_2.11:0.3.0
+-de.knutwalker:rx-redis-core_2.11:0.3.0
| +-org.scala-lang:scala-reflect:2.11.2
|
+-io.netty:netty-codec:4.0.21.Final
+-io.netty:netty-transport:4.0.21.Final
+-io.netty:netty-buffer:4.0.21.Final
+-io.netty:netty-common:4.0.21.Final
You can make of it what you want. YMMV, and take it with a huge grain of salt. Personally, I am rather pleased :-)