#
# benchmark.rb
#
# Copyright (c) 1999-2002 Minero Aoki <aamine@loveruby.net>
#
# This program is free software.
# You can distribute/modify this program under the terms of
# the GNU Lesser General Public License version 2 or later.
#
# $Id: benchmark.rb,v 1.2 2002/01/05 06:19:34 aamine Exp $
#
# Usage:
#
# str = 'test string'
# benchmark( 'strdup', 10_0000 ) {
# str.dup
# }
#
if Process.respond_to? :times then
TIMES_MODULE = Process
else
TIMES_MODULE = Time
end
def benchmark( label, times, &block )
GC.disable
mod = TIMES_MODULE
begtime = mod.times.utime
times.times( &block )
endtime = mod.times.utime
GC.enable
$stderr.printf "%-10s: %f sec\n", label, endtime - begtime
end
syntax highlighted by Code2HTML, v. 0.9.1