Посмотрели ли вы модуль Benchmarks?
Кажется, делает именно то, что вы хотите, и это входит в основные библиотеки Ruby.
require 'benchmark'
Benchmark.bm do |x|
x.report block_to_time
end
Вывод очень похож на команду времени unix. Детализация времени, проведенного в пространстве ядра, времени в пользовательском пространстве и общего времени ЦП, а также реального времени, прошедшего.