tokio-rs / mini-redis

Incomplete Redis client and server implementation using Tokio - for learning purposes only
MIT License
3.88k stars 448 forks source link

Initial benchmark results #1

Open carllerche opened 4 years ago

carllerche commented 4 years ago

REAL REDIS

redis-benchmark -t get,set -n 10000                                                                                                         ✔
====== SET ======
  10000 requests completed in 0.08 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

100.00% <= 0 milliseconds
129870.13 requests per second

====== GET ======
  10000 requests completed in 0.07 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

100.00% <= 0 milliseconds
138888.89 requests per second

MINI REDIS - SINGLE THREADED

redis-benchmark -t get,set -n 10000                                                                                                         ✔
====== SET ======
  10000 requests completed in 0.11 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

99.52% <= 105 milliseconds
99.59% <= 106 milliseconds
99.65% <= 107 milliseconds
99.73% <= 108 milliseconds
99.82% <= 109 milliseconds
99.94% <= 110 milliseconds
100.00% <= 110 milliseconds
90909.09 requests per second

====== GET ======
  10000 requests completed in 0.10 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

99.52% <= 101 milliseconds
99.60% <= 102 milliseconds
99.73% <= 103 milliseconds
99.91% <= 104 milliseconds
100.00% <= 104 milliseconds
96153.84 requests per second

MINI REDIS - THREADED

redis-benchmark -t get,set -n 10000                                                                                                         ✔
====== SET ======
  10000 requests completed in 0.09 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

99.57% <= 89 milliseconds
99.87% <= 90 milliseconds
100.00% <= 90 milliseconds
111111.11 requests per second

====== GET ======
  10000 requests completed in 0.11 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

99.57% <= 104 milliseconds
99.79% <= 105 milliseconds
100.00% <= 105 milliseconds
94339.62 requests per second
carllerche commented 4 years ago

Turns out there was a pretty major bug.... after fixed:

MINI REDIS - SINGLE THREAD

====== SET ======
  100000 requests completed in 0.71 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

100.00% <= 0 milliseconds
139860.14 requests per second

====== GET ======
  100000 requests completed in 0.71 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

100.00% <= 0 milliseconds
139860.14 requests per second

REAL REDIS

====== SET ======
  100000 requests completed in 0.72 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

100.00% <= 0 milliseconds
139470.02 requests per second

====== GET ======
  100000 requests completed in 0.71 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

100.00% <= 0 milliseconds
141043.72 requests per second