Метод шага диапазона Ruby вызывает очень медленное выполнение?

У меня есть этот блок кода:

date_counter = Time.mktime(2011,01,01,00,00,00,"+05:00")
@weeks = Array.new
(date_counter..Time.now).step(1.week) do |week|
   logger.debug "WEEK: " + week.inspect
   @weeks << week
end

Технически код работает, вывод:

Sat Jan 01 00:00:00 -0500 2011
Sat Jan 08 00:00:00 -0500 2011
Sat Jan 15 00:00:00 -0500 2011
etc.

Но время выполнения - полная чушь! На вычисления каждую неделю уходит примерно четыре секунды.

Есть ли какая-то гротескная неэффективность, которой мне не хватает в этом коде? Это кажется достаточно простым.

Я использую Ruby 1.8.7 с Rails 3.0.3.

6
задан the Tin Man 13 March 2011 в 17:53
поделиться