Lua Performance Tips
- 作者: Luiz Henrique De Figueiredo,Waldemar Celes,Roberto Ierusalimschy
- 出版社/メーカー: Lua.Org
- 発売日: 2008/12/11
- メディア: ペーパーバック
- 購入: 10人 クリック: 73回
- この商品を含むブログ (1件) を見る
最も基本的なポイントであるグローバル変数とローカル変数の違いから, table における配列とハッシュの扱いについて,文字列の内部的な扱いについて,等々, Lua におけるパフォーマンスの要点について触れている。
分かりやすい例
例えば,こんな例は分かりやすい。
for i = 1, 1000000 do local x = math.sin(i) end
これは math.sin
に毎回アクセスしている部分をローカル変数に書き換えるだけで約 30% 速くなるという。
local sin = math.sin for i = 1, 1000000 do local x = sin(i) end
分かりにくい例
for i = 1, 1000000 do local a = {} a[1] = 1; a[2] = 2; a[3] = 3 end
これは,テーブル a
に初期値を設定してやることによってテーブルの rehash を避けることができるようになり,半分以下の処理時間になるという。本当?
for i = 1, 1000000 do local a = {true, true, true} a[1] = 1; a[2] = 2; a[3] = 3 end