Lua Performance Tips
![Lua Programming Gems Lua Programming Gems](https://images-fe.ssl-images-amazon.com/images/I/41Rtabt2qLL._SL160_.jpg)
- 作者: Luiz Henrique De Figueiredo,Waldemar Celes,Roberto Ierusalimschy
- 出版社/メーカー: Lua.Org
- 発売日: 2008/12/11
- メディア: ペーパーバック
- 購入: 10人 クリック: 73回
- この商品を含むブログ (1件) を見る
Lua Programming Gems は, Lua のプログラミングテクニックについてまとめた,いわゆる﹁Gems本﹂だ。公式ページでは第2章 "Lua Performance Tips" をサンプルとして無料公開しており, PDF 形式でダウンロードして読むことができる。この内容がなかなか面白い。
最も基本的なポイントであるグローバル変数とローカル変数の違いから, 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