Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
This paste will be private.
## benchmark require 'benchmark' total = (ENV['TOTAL'] || 1_000).to_i strings = Dir["spec/**/*_spec.rb"] floats = strings.map { |s| s.size.to_f + rand } Benchmark.bmbm do |x| x.report("loop") do times = 0 while times < total floats.each { |s| s } times += 1 end end x.report("primitive") do times = 0 while times < total floats.each { |s| s.special_add s } times += 1 end end x.report("ffi s + s") do times = 0 while times < total floats.each { |s| s + s } times += 1 end end x.report("ffi P::F.add s, s") do times = 0 while times < total floats.each { |s| Platform::Float.add s, s } times += 1 end end x.report("ffi F.add s, s") do F = Platform::Float times = 0 while times < total floats.each { |s| F.add s, s } times += 1 end end end ## run euler:rubinius brian$ rm ffi.rbc; TOTAL=10_000 shotgun/rubinius ffi.rb Rehearsal ----------------------------------------------------- loop 5.363105 0.000000 5.363105 ( 5.363095) primitive 7.478554 0.000000 7.478554 ( 7.478548) ffi s + s 28.856437 0.000000 28.856437 ( 28.856417) ffi P::F.add s, s 10.915453 0.000000 10.915453 ( 10.915431) ffi F.add s, s 10.432356 0.000000 10.432356 ( 10.432340) ------------------------------------------- total: 63.045905sec user system total real loop 5.216899 0.000000 5.216899 ( 5.216879) primitive 8.549649 0.000000 8.549649 ( 8.549653) ffi s + s 28.714589 0.000000 28.714589 ( 28.714583) ffi P::F.add s, s 10.994805 0.000000 10.994805 ( 10.994813) ffi F.add s, s 10.541753 0.000000 10.541753 ( 10.541763)
Pasted February 06, 2008 5:26PM EDT
Embed