Rubyにはクロージャと言うものがある。 ようするに手続きオブジェクトで、Proc.newなどで作ることができる。 こいつのポイントは、それが作られた環境(ローカル変数とか)のスコープと値を保持するところだ。環境を閉じ込めるからクロージャという。らしい。 array = [] (0..2).each do |i| array.push(Proc.new {i}) end p array[0].call # => 0 p array[1].call # => 1 p array[2].call # => 2 array = [] for i in 0..2 array.push(Proc.new {i}) end p array[0].call # => 2 p array[1].call # => 2 p array[2].call # => 2 上のコードでは(0..2).eachしてい
いやはや、参りました。 約50%の負荷で約1000オブジェクト、Rubyのコードだけで動くようになってしまった。 何をしたかと言うと、いままでmswin32版のRuby1.9.1を使っていたのを、mingw32版に換えただけ。 正確には ruby 1.9.1p376 (2009-12-07 revision 26041) [i386-mswin32] を ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32] にした。 別の言い方をすると、こちらからダウンロードさせていただいていたものを http://www.artonx.org/data/asr/ こちらにかえた。 http://rubyforge.org/projects/rubyinstaller/ どうなったのかというと、 http://d.hatena.ne.jp/mi
先日の記事でrequireの高速化をしたいと書いてから、ずいぶん時間が空いてしまいました。遅々とした進み具合で申し訳ないのですが、まずは高速化の基準となるベンチマークを取ってみました。基準点がなければ、具体的にどのくらい高速化したかわからないためです。 ベンチマークを行った環境 まずベンチマークを行った環境なのですが、「Windowsで遅い」と言われる問題の検証ですので、比較対象としてMacでも同じベンチマークを行うことにしました。マシンはいわゆるLate 2008 MacBook、スペックは以下の通りです。 CPU 2.4GHz Intel Core 2 Duo メモリ 4GB 1067MHz DDR3 ハードディスク TOSHIBA MK3253GSX 320GB 5400RPM 8MB Buffer また、WindowsのシステムはBootCampで起動したWindowsXP Hom
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く