提交 d4047f72 编写于 作者: A antirez

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.
上级 61290d81
proc test_memory_efficiency {range} { proc test_memory_efficiency {range} {
r flushall r flushall
set rd [redis_deferring_client]
set base_mem [s used_memory] set base_mem [s used_memory]
set written 0 set written 0
for {set j 0} {$j < 10000} {incr j} { for {set j 0} {$j < 10000} {incr j} {
set key key:$j set key key:$j
set val [string repeat A [expr {int(rand()*$range)}]] 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 $key]
incr written [string length $val] incr written [string length $val]
incr written 2 ;# A separator is the minimum to store key-value data. 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 current_mem [s used_memory]
set used [expr {$current_mem-$base_mem}] set used [expr {$current_mem-$base_mem}]
set efficiency [expr {double($written)/$used}] set efficiency [expr {double($written)/$used}]
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册