ruby-changes:2049
From: ko1@a...
Date: 28 Sep 2007 12:51:51 +0900
Subject: [ruby-changes:2049] ko1 - Ruby:r13540 (trunk): * benchmark/driver.rb: fix file selection algorithm.
ko1 2007-09-28 12:51:41 +0900 (Fri, 28 Sep 2007) New Revision: 13540 Modified files: trunk/ChangeLog trunk/benchmark/driver.rb trunk/version.h Log: * benchmark/driver.rb: fix file selection algorithm. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/version.h?r1=13540&r2=13539 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/benchmark/driver.rb?r1=13540&r2=13539 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=13540&r2=13539 Index: ChangeLog =================================================================== --- ChangeLog (revision 13539) +++ ChangeLog (revision 13540) @@ -1,3 +1,7 @@ +Fri Sep 28 12:49:05 2007 Koichi Sasada <ko1@a...> + + * benchmark/driver.rb: fix file selection algorithm. + Thu Sep 27 17:36:28 2007 NAKAMURA Usaku <usa@r...> * win32/REAMDE.win32: follow recent changes. Index: version.h =================================================================== --- version.h (revision 13539) +++ version.h (revision 13540) @@ -1,7 +1,7 @@ #define RUBY_VERSION "1.9.0" -#define RUBY_RELEASE_DATE "2007-09-27" +#define RUBY_RELEASE_DATE "2007-09-28" #define RUBY_VERSION_CODE 190 -#define RUBY_RELEASE_CODE 20070927 +#define RUBY_RELEASE_CODE 20070928 #define RUBY_PATCHLEVEL 0 #define RUBY_VERSION_MAJOR 1 @@ -9,7 +9,7 @@ #define RUBY_VERSION_TEENY 0 #define RUBY_RELEASE_YEAR 2007 #define RUBY_RELEASE_MONTH 9 -#define RUBY_RELEASE_DAY 27 +#define RUBY_RELEASE_DAY 28 #ifdef RUBY_EXTERN RUBY_EXTERN const char ruby_version[]; Index: benchmark/driver.rb =================================================================== --- benchmark/driver.rb (revision 13539) +++ benchmark/driver.rb (revision 13540) @@ -22,7 +22,7 @@ next if e.empty? v = `#{e} -v`.chomp - v.sub!(' patchlevel 0', '') + v.sub!(/ patchlevel \d+/, '') [e, v] }.compact @@ -89,19 +89,39 @@ end - def run - Dir.glob(File.join(@dir, 'bm*.rb')){|file| + def files + flag = {} + vm1 = vm2 = wl1 = wl2 = false + @files = Dir.glob(File.join(@dir, 'bm*.rb')).map{|file| next if @pattern && /#{@pattern}/ !~ File.basename(file) + case file + when /bm_(vm[12])_/, /bm_loop_(whileloop2?).rb/ + flag[$1] = true + end + file + }.compact - if /bm_vm1_/ =~ file and !@loop_wl1 - r = measure_file(File.join(File.dirname(file), 'bm_loop_whileloop.rb')) + if flag['vm1'] && !flag['whileloop'] + @files << File.join(@dir, 'bm_loop_whileloop.rb') + elsif flag['vm2'] && !flag['whileloop2'] + @files << File.join(@dir, 'bm_loop_whileloop2.rb') + end + + @files.sort! + STDERR.puts "total: #{@files.size * @repeat} trial(s) (#{@repeat} trial(s) for #{@files.size} benchmark(s))" + @files + end + + def run + files.each_with_index{|file, i| + @i = i + r = measure_file(file) + + if /bm_loop_whileloop.rb/ =~ file @loop_wl1 = r[1].map{|e| e.min} - elsif /bm_vm1_/ =~ file and !@loop_wl2 - r = measure_file(File.join(File.dirname(file), 'bm_loop_whileloop2.rb')) + elsif /bm_loop_whileloop2.rb/ =~ file @loop_wl2 = r[1].map{|e| e.min} end - - measure_file(file) } end @@ -161,20 +181,20 @@ :repeat => 1, } parser = OptionParser.new{|o| - o.on('-e', '--executables [EXECUTABLES]', - 'Specify benchmark targets ("exec1; exec2; exec3, ...")'){|e| + o.on('-e', '--executables [EXECS]', + "Specify benchmark one or more targets. (exec1; exec2; exec3, ...)"){|e| opt[:execs] = e.split(/;/) } - o.on('-d', '--directory [DIRECTORY]'){|d| + o.on('-d', '--directory [DIRECTORY]', "Benchmark directory"){|d| opt[:dir] = d } o.on('-p', '--pattern [PATTERN]', "Benchmark name pattern"){|p| opt[:pattern] = p } - o.on('-n', '--repeat-num [NUM]', "Repeat count"){|n| + o.on('-r', '--repeat-count [NUM]', "Repeat count"){|n| opt[:repeat] = n.to_i } - o.on('-q', '--quiet'){|q| + o.on('-q', '--quiet', "Run without notify information except result table."){|q| opt[:quiet] = q } o.on('-v', '--verbose'){|v| -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml