Sha256: 1960eefd1e140cccccb871d886f6098bd74b7c9f8544ca6eecf88e025fc350d2

Contents?: true

Size: 1.09 KB

Versions: 3

Compression:

Stored size: 1.09 KB

Contents

$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
require 'utf8'
require 'benchmark'

require 'rubygems'
require 'active_support'


raw = File.read(File.expand_path('../test.txt', __FILE__))
utf8 = raw.as_utf8
as_mb = ActiveSupport::Multibyte::Chars.new(raw)

times = 1000

puts "String::UTF8"
Benchmark.bmbm do |x|
  x.report {
    puts "#length"
    times.times {utf8.length}
  }
  x.report {
    puts "#[index]"
    times.times {utf8[1024]}
  }
  x.report {
    puts "#[-index]"
    times.times {utf8[-1024]}
  }
  x.report {
    puts "#[start, len]"
    times.times {utf8[1024, 1024]}
  }
  x.report {
    puts "#[-start, len]"
    times.times {utf8[-1024, 1024]}
  }
end

puts "\n\nActiveSupport::Multibyte::Chars"
Benchmark.bmbm do |x|
  x.report {
    puts "#length"
    times.times {as_mb.length}
  }
  x.report {
    puts "#[index]"
    times.times {as_mb[1024]}
  }
  x.report {
    puts "#[-index]"
    times.times {as_mb[-1024]}
  }
  x.report {
    puts "#[start, len]"
    times.times {as_mb[1024, 1024]}
  }
  x.report {
    puts "#[-start, len]"
    times.times {as_mb[-1024, 1024]}
  }
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
utf8-0.1.2 benchmark/active_support.rb
utf8-0.1.1 benchmark/active_support.rb
utf8-0.1.0 benchmark/active_support.rb