TestSprite.js (2)
http://d.hatena.ne.jp/sa-y/20060425#1145974636 で書いた TestSprite.js は不当に(?)遅い物だったと気が付いたのでもう少し最適化してみました。
別に testsprite.booが C の 55% も出るらしいのに Rhino の ECMAScript で 30% 程度の性能しか出なかったのが悔しかったからとかそういうことはないです.ちょっとしか….
変更点は以下の通り.
- プロパティアクセス,メソッドコールを減らすためにローカル変数を増やした.
- updateScreen() メソッド内での分岐を削除して,事前にメソッド自体をプログラム実行時に定義するように変更.
前回 と同じ環境で上のソースを使って再測定しました.
C言語版 | 591.46 |
Java版(gcj版) | 589.57 |
JavaScript版(インタープリタ) | 178.67 |
JavaScript版(コンパイル) | 237.32 |
237.32 / 591.46 = .40124437831806039292 = 40%
C や java の 40% 程度….本当に Rhino も gcj もすごく頑張っていると思う.Groovy や jruby に比べれば格段に速い.でも 40% 程度か… testsprite.* なプログラムは処理のほとんどが描画処理のため言語の処理能力による影響は少ないはずなのでもう少しなぁ…