-
-
Save joshbuddy/177175 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-darwin9.6.0] | |
user system total real | |
by_define_method 0.680000 0.000000 0.680000 ( 0.700586) | |
by_explicit_definition 0.560000 0.010000 0.570000 ( 0.581977) | |
by_eval 0.550000 0.000000 0.550000 ( 0.553484) | |
by_class_eval 0.540000 0.010000 0.550000 ( 0.561800) | |
by_class_eval_block 0.540000 0.000000 0.540000 ( 0.548041) | |
by_module_eval 0.550000 0.010000 0.560000 ( 0.560635) | |
by_module_eval_block 0.520000 0.000000 0.520000 ( 0.539168) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
jruby-1.3.1 | |
user system total real | |
by_define_method 1.073000 0.000000 1.073000 ( 1.073000) | |
by_explicit_definition 0.618000 0.000000 0.618000 ( 0.618000) | |
by_class_eval 0.657000 0.000000 0.657000 ( 0.658000) | |
by_class_eval_block 0.623000 0.000000 0.623000 ( 0.623000) | |
by_module_eval 0.678000 0.000000 0.678000 ( 0.678000) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Matthew, which Ruby version do you have? | |
user system total real | |
by_define_method 1.760000 0.400000 2.160000 ( 2.158289) | |
by_explicit_definition 1.160000 0.240000 1.400000 ( 1.391353) | |
by_class_eval 1.100000 0.260000 1.360000 ( 1.370616) | |
by_class_eval_block 1.140000 0.240000 1.380000 ( 1.394569) | |
by_module_eval 1.150000 0.260000 1.410000 ( 1.429104) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'benchmark' | |
class TheHost | |
define_method(:by_define_method) do | |
24*4 | |
end | |
def by_explicit_definition | |
24*4 | |
end | |
class_eval <<-EVAL | |
def by_class_eval | |
24*4 | |
end | |
EVAL | |
class_eval do | |
def by_class_eval_block | |
24*4 | |
end | |
end | |
module_eval <<-EVAL | |
def by_module_eval | |
24*4 | |
end | |
EVAL | |
end | |
@@host = TheHost.new | |
TIMES = 1_000_000 | |
Benchmark.bmbm do |x| | |
%w( by_define_method by_explicit_definition by_class_eval by_class_eval_block by_module_eval ).each do |meth| | |
x.report(meth) do | |
TIMES.times do | |
@@host.send(meth) | |
end | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment