![]() |
NCZOnline |
"Professional JavaScript for Web Developers"、"Professional Ajax"などの書籍の著者でありSpeed up your JavaScriptシリーズを公開したNicholas C. Zakas氏が再び興味深い記事をブログで公開した。JavaScript variable performanceだ。WeブラウザごとにJavaScriptにおける変数へのアクセスの時間を計測してまとめている。
JavaScriptパフォーマンスの高速化手法に『外部変数を使うのではなく可能な限りローカル変数を使う』というテクニックがある。これは識別子の検索がローカル変数から実施されるためで、外部変数を使うよりもローカル変数を使う方が検索が短い時間で終わるため結果的に処理時間の短縮につながるというものだ。1度以上外部変数を使うなら、ローカル変数に代入して使った方がいいとされている。
JavaScript variable performanceでは実際にどの程度違いがあらわれるのかを計測するため、ローカル変数から外部変数(深さは2-6)までブラウザごとに処理時間をまとめている。使われたブラウザと結果は次のとおり。
Google ChromeとWebkit Nightlyはフラットで高速な結果を出している。これは開発が進められているV8およびSquirrelFish JavaScriptエンジンの効果とみられる。Firefoxはそれほど性能がでていないが、これはTraceMonkeyが有効にされていないためで、TraceMonkeyを有効にした場合にはChromeやWebkit Nightlyと似たような結果を示すのではないかとみられる。Operaは次世代JavaScriptエンジンが有効になっていないにもかかわらずフラットで良好な結果を出している。次世代エンジンが有効になればさらに高速化が期待できそうだ。JavaScript variable performanceにはグラフ付きで結果がまとまっている。
すでに登場している、またはこれから登場が計画されている最新のWebブラウザでは外部変数へのアクセスも高速化されることになりそうだが、最大シェアを誇るIE7やIE8でほとんど改善がみられないことから『外部変数を使うのではなく可能な限りローカル変数を使う』テクニックは引き続き有効な高速化手法ということになりそうだ。
| Speed up your JavaScriptシリーズ全4回、ブラウザには止めさせない [2009/2/5] |
| トマトを食べれば痩せられる!? -京大ら、新発見の成分で肥満改善効果を実証 [21:00 2/10] |
| JAXA、液体シリコン中に残存する共有結合を観察 -大口径ウェハの実現に期待 [20:11 2/10] |
| NEDOなど、熱膨張が小さな樹脂複合材料ペレットの量産化に成功 [19:22 2/10] |
| 理研、一般顕微鏡を蛍光顕微鏡に強化できるアダプタを試作して性能を実証 [19:15 2/10] |
| 天の川のブラックホールが小惑星を飲み込んでいる - NASAが発表 [18:08 2/10] |
|
[観月ありさ]濃姫役で戦国時代劇初挑戦 信長役は城田優 SPドラマ「濃姫」 [05:00 2/11] エンタメ |
|
【レポート】秋葉原アイテム巡り - 『幻想水滸伝』シリーズ最新作や『GRAVITY DAZE』が発売! 冬アニメ注目のOP・EDテーマも続々リリース [05:00 2/11] ホビー |
|
激シブ!もう一度ゴルフ Ⅱ の魅力を味わってみませんか?【大阪オートメッセ2012】 [03:06 2/11] キャリア |
|
『ヘタリア』キャラソン、新シリーズが配信決定! [03:05 2/11] キャリア |
|
全国の温泉を擬人化したドラマCD、第1弾「草津」は櫻井孝宏さん! [03:05 2/11] キャリア |