summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2015-02-10 14:47:45 +0100
committerantirez <antirez@gmail.com>2015-02-10 14:47:45 +0100
commit5e3dcc522b13d5441d6cdf4ee6ff48bd25df13cb (patch)
tree72af41c04a1119a850bb94da1edd8d6ef2178375
parente1fce55237ee1092384017a157882d548c6a517f (diff)
downloadredis-5e3dcc522b13d5441d6cdf4ee6ff48bd25df13cb.tar.gz
Faster memory efficiency test.
This test on Linux was extremely slow, since in Tcl we can't enable easily tcp-nodelay, so the busy loop used to take *a lot* with bigger writes. Fixed using pipelining.
-rw-r--r--tests/unit/memefficiency.tcl7
1 files changed, 6 insertions, 1 deletions
diff --git a/tests/unit/memefficiency.tcl b/tests/unit/memefficiency.tcl
index 14e135ced..7ca9a705b 100644
--- a/tests/unit/memefficiency.tcl
+++ b/tests/unit/memefficiency.tcl
@@ -1,15 +1,20 @@
proc test_memory_efficiency {range} {
r flushall
+ set rd [redis_deferring_client]
set base_mem [s used_memory]
set written 0
for {set j 0} {$j < 10000} {incr j} {
set key key:$j
set val [string repeat A [expr {int(rand()*$range)}]]
- r set $key $val
+ $rd set $key $val
incr written [string length $key]
incr written [string length $val]
incr written 2 ;# A separator is the minimum to store key-value data.
}
+ for {set j 0} {$j < 10000} {incr j} {
+ $rd read ; # Discard replies
+ }
+
set current_mem [s used_memory]
set used [expr {$current_mem-$base_mem}]
set efficiency [expr {double($written)/$used}]