私はこのコードブロックを持っています:
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.
しかし、実行時間は完全にゴミです!毎週の計算には約 4 秒かかります。
このコードに欠けているグロテスクな非効率性はありますか? それは十分に簡単に思えます。
Rails 3.0.3 で Ruby 1.8.7 を実行しています。