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"] numbers = Array.new(strings.size).fill { |i| strings[i].size } Benchmark.bmbm do |x| x.report("Fixnum#<=>") do times = 0 while times < total size = numbers.size i = j = 0 while i < size while j < size numbers[i] <=> numbers[j] j += 1 end i += 1 end times += 1 end end x.report("String#<=>") do times = 0 while times < total size = numbers.size i = j = 0 while i < size while j < size strings[i] <=> strings[j] j += 1 end i += 1 end times += 1 end end end ## before angelo:rubinius brian$ ruby -v ruby 1.8.6 (2007-09-24 patchlevel 111) [universal-darwin9.0] angelo:rubinius brian$ TOTAL=1_000 ruby spaceship.rb Rehearsal ---------------------------------------------- Fixnum#<=> 2.140000 0.000000 2.140000 ( 2.141557) String#<=> 2.240000 0.000000 2.240000 ( 2.252411) ------------------------------------- total: 4.380000sec user system total real Fixnum#<=> 2.150000 0.010000 2.160000 ( 2.160930) String#<=> 2.260000 0.000000 2.260000 ( 2.255196) angelo:rubinius brian$ shotgun/rubinius -v rubinius 0.8.0 (ruby 1.8.6 compatible) (681156e0b) (02/05/2008) [i686-apple-darwin9.1.0] angelo:rubinius brian$ TOTAL=1_000 shotgun/rubinius spaceship.rb Rehearsal ---------------------------------------------- Fixnum#<=> 0.576426 0.000000 0.576426 ( 0.576411) String#<=> 12.772771 0.000000 12.772771 ( 12.772771) ------------------------------------ total: 13.349197sec user system total real Fixnum#<=> 0.581613 0.000000 0.581613 ( 0.581600) String#<=> 12.761486 0.000000 12.761486 ( 12.761486) ## after while replaced Integer#times angelo:rubinius brian$ TOTAL=1_000 shotgun/rubinius spaceship.rb Rehearsal ---------------------------------------------- Fixnum#<=> 0.579724 0.000000 0.579724 ( 0.579695) String#<=> 5.834347 0.000000 5.834347 ( 5.834344) ------------------------------------- total: 6.414071sec user system total real Fixnum#<=> 0.582978 0.000000 0.582978 ( 0.582972) String#<=> 6.122626 0.000000 6.122626 ( 6.122642) ## after ByteArray#compare_bytes fixed to take lengths angelo:rubinius brian$ rm spaceship.rbc; TOTAL=1_000 shotgun/rubinius spaceship.rb Rehearsal ---------------------------------------------- Fixnum#<=> 0.613617 0.000000 0.613617 ( 0.613589) String#<=> 2.417588 0.000000 2.417588 ( 2.417580) ------------------------------------- total: 3.031205sec user system total real Fixnum#<=> 0.609608 0.000000 0.609608 ( 0.609608) String#<=> 2.440267 0.000000 2.440267 ( 2.440282)
Pasted February 05, 2008 2:11PM EDT
Embed