Test: added a memory efficiency test.
This commit is contained in:
parent
41d3147344
commit
f79b1cb49e
@ -45,6 +45,7 @@ set ::all_tests {
|
||||
unit/limits
|
||||
unit/obuf-limits
|
||||
unit/bitops
|
||||
unit/memefficiency
|
||||
}
|
||||
# Index to the next test to run in the ::all_tests list.
|
||||
set ::next_test 0
|
||||
|
32
tests/unit/memefficiency.tcl
Normal file
32
tests/unit/memefficiency.tcl
Normal file
@ -0,0 +1,32 @@
|
||||
proc test_memory_efficiency {range} {
|
||||
r flushall
|
||||
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
|
||||
incr written [string length $key]
|
||||
incr written [string length $val]
|
||||
incr written 2 ;# A separator is the minimum to store key-value data.
|
||||
}
|
||||
set current_mem [s used_memory]
|
||||
set used [expr {$current_mem-$base_mem}]
|
||||
set efficiency [expr {double($written)/$used}]
|
||||
return $efficiency
|
||||
}
|
||||
|
||||
start_server {tags {"memefficiency"}} {
|
||||
foreach {size_range expected_min_efficiency} {
|
||||
32 0.15
|
||||
64 0.25
|
||||
128 0.35
|
||||
1024 0.75
|
||||
16384 0.90
|
||||
} {
|
||||
test "Memory efficiency with values in range $size_range" {
|
||||
set efficiency [test_memory_efficiency $size_range]
|
||||
assert {$efficiency >= $expected_min_efficiency}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user