expand for loop

2のn乗ごとにfor文を展開したら汎用的で速いloopが作れるかと思ったらそうでもなかった(V8でちょっとだけ効果があるかな)。
でも、オブジェクトが要素である配列を二重loopで走査するのにevalで内側のオブジェクトの走査を展開するってのは効果があります(node.jsのMySQLドライバーでの話)。

以下はArrayBufferから指定のエンディアン、タイプの配列を読み出す関数を作成する関数の例。
http://jsperf.com/test-expand-for-loop

たまにevalすげーって思うこともあるけど、やっぱり圧縮系のライブラリとの相性が最悪すぎてダメかーみたいなことはありがちですよね。でもまぁ、例えば、angular.jsって明らかにeval使っているのだけど、そういう(圧縮するやつ)の使わないって割り切ってんでしょう。


posted by 右京 | javascript
blog comments powered by Disqus
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。