X-Git-Url: https://git.saurik.com/redis.git/blobdiff_plain/84c6bdfcd0cd12f741bbb117648d057c26c85b89..6255a5ae668a0aaf13d73f051face138cfbd78a4:/utils/speed-regression.tcl diff --git a/utils/speed-regression.tcl b/utils/speed-regression.tcl index a37f6028..86a7d8d8 100755 --- a/utils/speed-regression.tcl +++ b/utils/speed-regression.tcl @@ -2,6 +2,12 @@ # Copyright (C) 2011 Salvatore Sanfilippo # Released under the BSD license like Redis itself +source ../tests/support/redis.tcl +set ::port 12123 +set ::tests {PING,SET,GET,INCR,LPUSH,LPOP,SADD,SPOP,LRANGE_100,LRANGE_600,MSET} +set ::datasize 16 +set ::requests 100000 + proc run-tests branches { set runs {} set branch_id 0 @@ -22,16 +28,21 @@ proc run-tests branches { # Start the Redis server puts " starting the server... [exec ./redis-server -v]" - set pids [exec echo "port 12123\nloglevel warning\n" | ./redis-server - > /dev/null 2> /dev/null &] + set pids [exec echo "port $::port\nloglevel warning\n" | ./redis-server - > /dev/null 2> /dev/null &] + puts " pids: $pids" after 1000 puts " running the benchmark" - set output [exec /tmp/redis-benchmark -n 100000 --csv -p 12123] + + set r [redis 127.0.0.1 $::port] + set i [$r info] + puts " redis INFO shows version: [lindex [split $i] 0]" + $r close + + set output [exec /tmp/redis-benchmark -n $::requests -t $::tests -d $::datasize --csv -p $::port] lappend runs $b $output puts " killing server..." - catch { - exec kill -9 [lindex $pids 0] - exec kill -9 [lindex $pids 1] - } + catch {exec kill -9 [lindex $pids 0]} + catch {exec kill -9 [lindex $pids 1]} incr branch_id } return $runs @@ -78,6 +89,8 @@ proc main {} { slowset 2.2.0 2.4.0 unstable slowset } set results [run-tests $branches] + puts "\n" + puts "# Test results: datasize=$::datasize requests=$::requests" puts [combine-results $results] } @@ -87,4 +100,31 @@ if {![file exists speed-regression.tcl]} { puts "Example: cd utils; ./speed-regression.tcl" exit 1 } + +# Make sure there is not already a server runnign on port 12123 +set is_not_running [catch {set r [redis 127.0.0.1 $::port]}] +if {!$is_not_running} { + puts "Sorry, you have a running server on port $::port" + exit 1 +} + +# parse arguments +for {set j 0} {$j < [llength $argv]} {incr j} { + set opt [lindex $argv $j] + set arg [lindex $argv [expr $j+1]] + if {$opt eq {--tests}} { + set ::tests $arg + incr j + } elseif {$opt eq {--datasize}} { + set ::datasize $arg + incr j + } elseif {$opt eq {--requests}} { + set ::requests $arg + incr j + } else { + puts "Wrong argument: $opt" + exit 1 + } +} + main