以下の内容はhttps://shuzo-kino.hateblo.jp/entry/2015/06/27/155746より取得しました。


リテラル系記述を何度も呼び出す場合はObject#freezeで定数化してしまうと幸せになれる

shuzo-kino.hateblo.jp
以前書いたこの記事。

速度面での改善を図りたい場合はObject#freezeで定数化してしまう方法が有効です。
一度定数にしてしまえば一々再生成しないのでGCにも速度にも優しくなります。
ためしに%wリテラルで生成した配列を文字列化し、大文字にするメソッドを0xffff回ぶん回す事を考えてみます。
結果は

str = %w(a b c).map(&:freeze).freeze
result = Benchmark.realtime do 0xffff.times { str.to_s.upcase} end
#=> 0.165511

result = Benchmark.realtime do 0xffff.times { %w(a b c).to_s.upcase} end
#=> 0.174324

と、5%程度の優位は出ています。

配列をfreezeする時の話

別記事にしましたshuzo-kino.hateblo.jp

参考もと




以上の内容はhttps://shuzo-kino.hateblo.jp/entry/2015/06/27/155746より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14