1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

benchmark: drop legacy benchmark drivers

It seems like they are all benchmark drivers but "benchmark/driver.rb"
is the latest and others are no longer used.

It's confusing to have multiple drivers (and actually I used
benchmark/run.rb since I didn't know I should use benchmark/driver.rb).

As I'm going to support only benchmark/driver.rb features in Misc#14902,
let me delete them.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63886 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
k0kubun 2018-07-08 13:03:01 +00:00
parent d41baaee9f
commit 9fd839c0b2
3 changed files with 0 additions and 233 deletions

View file

@ -1,79 +0,0 @@
#
# YARV benchmark driver
#
require 'yarvutil'
require 'benchmark'
require 'rbconfig'
def exec_command type, file, w
<<-EOP
$DRIVER_PATH = '#{File.dirname($0)}'
$LOAD_PATH.replace $LOAD_PATH | #{$LOAD_PATH.inspect}
require 'benchmark'
require 'yarvutil'
# print '#{type}'
begin
puts Benchmark.measure{
#{w}('#{file}')
}.utime
rescue Exception => exec_command_error_variable
puts "\t" + exec_command_error_variable.message
end
EOP
end
def benchmark cmd
rubybin = ENV['RUBY'] || RbConfig.ruby
IO.popen(rubybin, 'r+'){|io|
io.write cmd
io.close_write
return io.gets
}
end
def ruby_exec file
prog = exec_command 'ruby', file, 'load'
benchmark prog
end
def yarv_exec file
prog = exec_command 'yarv', file, 'YARVUtil.load_bm'
benchmark prog
end
$wr = $wy = nil
def measure bench
file = File.dirname($0) + "/bm_#{bench}.rb"
r = ruby_exec(file).to_f
y = yarv_exec(file).to_f
puts "#{bench}\t#{r}\t#{y}"
end
def measure2
r = ruby_exec.to_f
y = yarv_exec.to_f
puts r/y
end
if $0 == __FILE__
%w{
whileloop
whileloop2
times
const
method
poly_method
block
rescue
rescue2
}.each{|bench|
measure bench
}
end

View file

@ -1,127 +0,0 @@
#
# Ruby benchmark driver
#
require 'benchmark'
require 'rbconfig'
$matzrubyonly = false
$rubyonly = false
$results = []
# prepare 'wc.input'
def prepare_wc_input
wcinput = File.join(File.dirname($0), 'wc.input')
wcbase = File.join(File.dirname($0), 'wc.input.base')
unless FileTest.exist?(wcinput)
data = File.read(wcbase)
13.times{
data << data
}
open(wcinput, 'w'){|f| f.write data}
end
end
prepare_wc_input
def bm file
prog = File.readlines(file).map{|e| e.rstrip}.join("\n")
return if prog.empty?
/[a-z]+_(.+)\.rb/ =~ file
bm_name = $1
puts '-----------------------------------------------------------' unless $rubyonly || $matzrubyonly
puts "#{bm_name}: "
puts <<EOS unless $matzrubyonly || $rubyonly
#{prog}
--
EOS
begin
result = [bm_name]
result << matzruby_exec(file) unless $rubyonly
result << ruby_exec(file) unless $matzrubyonly
$results << result
rescue Exception => e
puts
puts "** benchmark failure: #{e}"
puts e.backtrace
end
end
def benchmark file, bin
m = Benchmark.measure{
`#{bin} #{$opts} #{file}`
}
sec = '%.3f' % m.real
puts " #{sec}"
sec
end
def ruby_exec file
print 'ruby'
benchmark file, $ruby_program
end
def matzruby_exec file
print 'matz'
rubylib = ENV['RUBYLIB']
ENV['RUBYLIB'] = ''
r = benchmark file, $matzruby_program
ENV['RUBYLIB'] = rubylib
r
end
if $0 == __FILE__
ARGV.each{|arg|
case arg
when /\A--ruby=(.+)/
$ruby_program = $1
when /\A--matzruby=(.+)/
$matzruby_program = $1
when /\A--opts=(.+)/
$opts = $1
when /\A(-r|--only-ruby)\z/
$rubyonly = true
when /\A(-m|--only-matzruby)\z/
$matzrubyonly = true
end
}
ARGV.delete_if{|arg|
/\A-/ =~ arg
}
puts "MatzRuby:"
system("#{$matzruby_program} -v")
puts "Ruby:"
system("#{$ruby_program} -v")
puts
if ARGV.empty?
Dir.glob(File.dirname(__FILE__) + '/bm_*.rb').sort.each{|file|
bm file
}
else
ARGV.each{|file|
Dir.glob(File.join(File.dirname(__FILE__), file + '*')){|ef|
# file = "#{File.dirname(__FILE__)}/#{file}.rb"
bm ef
}
}
end
puts
puts "-- benchmark summary ---------------------------"
$results.each{|res|
print res.shift, "\t"
(res||[]).each{|result|
/([\d\.]+)/ =~ result
print $1 + "\t" if $1
}
puts
}
end

View file

@ -1,27 +0,0 @@
#
#
#
require 'benchmark'
require 'rbconfig'
$rubybin = ENV['RUBY'] || RbConfig.ruby
def runfile file
puts file
file = File.join(File.dirname($0), 'contrib', file)
Benchmark.bm{|x|
x.report('ruby'){
system("#{$rubybin} #{file}")
}
x.report('yarv'){
system("#{$rubybin} -rite -I.. #{file}")
}
}
end
ARGV.each{|file|
runfile file
}