[前][次][番号順一覧][スレッド一覧]

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

[前][次][番号順一覧][スレッド一覧]