Для для тестування був написаний простий скрипт з використанням модуля Benchmark, який надає методи для вимірювання та звітності часу, що був затрачений на виконання коду Ruby:
require 'benchmark'
require 'date'
puts RUBY_DESCRIPTION
n = 10_000
puts
Benchmark.bm(10) do |x|
x.report("Time:") { n.times{Time.now} }
x.report("DateTime:") { n.times{DateTime.now} }
end
puts
Benchmark.bm(10) do |x|
x.report("Time:") { n.times{Time.mktime(2012, 12, 23)} }
x.report("DateTime:") { n.times{DateTime.new(2012, 12, 23)} }
end
У тестуванні будуть брати участь наступні версії Ruby: 1.8.7, 1.9.2 та 1.9.3-rc1, а також альтернативні реалізації інтерпретатора: Rubinius написаного на мові C++ та JRuby - на Java.
Тепер подивимося на результат виконання цього скрипта: