流し読みニュース > 記事 "+="でも不十分、IEで性能発揮するには文字列サイズにも工夫必要(マイコミジャーナル)16日22:03
この記事を、ひらがな解除する
"+="でもふじゅうぶん、IEでせいのうはっきするにはもじれつさいずにもくふうひつよう(マイコミジャーナル)16にち22:03

"+="でも不十分、IEで性能発揮するには文字列サイズにも工夫必要(マイコミジャーナル)16日22:03

Mon, 16 Jun 2008 22:03:21



TomTrenkaしはいぜんSitePenにおいてStringPerformance:anAnalysisというタイトルのもとできょうみぶかいドキュメントをこうかいした。どうドキュメントはdojox.string.Builderのパフォーマンスをかいぜんすることをもくてきとしておこなわれたぶんせきのけっかをまとめたもので、JavaScriptプログラミングにはかかせないきょうみぶかいけつろんがみちびきだされていた。

これまでのテクニックにしたがえば、もじれつはいったんはいれつにぶんかいしてからそうさをおこない、さいごにもじれつにもどしたほうがしょりがこうそくになるとかんがえられてきた。いぜんのIEであればそのひんじゃくなもじれつしょりせいのうやGCのどうさのえいきょうでそれはじじつだったが、さいきんのWebブラウザではかいぜんされておりはいれつにぶんかいするよりも"+="でれんけつしたほうがしょりがこうそくになることがあきらかになった。これがStringPerformance:anAnalysisでのおもなけつろんだ。

しかしどうぶんせきではほかのブラウザとひかくしてIEのパフォーマンスがあまりかんばしいものではなかった。TomTrenkaしはこんどはIEにおけるパフォーマンスをこうじょうさせることをもくてきとしてぶんせきをおこない、そのけっかをStringPerformance:GettingGoodPerformancefromInternetExplorerとしてこうかいした。こちらもじつにきょうみぶかいないようになっている。

まずIEにおいても"+="のしょりがこうそくであり、IE6でははいれつをつかったばあいよりもじゃっかんおとるていど、IE7では"+="をつかったほうがしょりがこうそくになることをせつめいしている。IE6/7でも"+="がゆうこうというわけだ。きょうみぶかいのはここからだ。どうしはじっけんをつうじて、dojox.string.Builderでじっそうされているappendメソッドを、ひきすうひとつでじっこうするばあいよりも、ふくすうわたしてじっこうしたときのほうがパフォーマンスがこうじょうしていることをはっけんした。どうしがぶんせきするところでは、これはIEのもじれつオブジェクトのしょりにりゆうがあるようだ。

IEではだいきぼもじれつのしょりがパフォーマンスじょうのもんだいとなっている。どうじっそうではふくすうのひきすうをあたえたばあいにはそらのもじれつバッファをよういしてから、そのバッファにいったんもじれつをついかしていき、さいごにもくてきのバッファについかするというほうほうをさいようしている。しかしひきすうがひとつしかないばあいにはひきすうをちょくせつバッファについかしている。このしょりのさがじっこうそくどのさとしてあらわれたという。

こうしたけっかをふまえどうしは(1)IEでもIE6いじょうであれば"+="をつかうこと、(2)ただししょりするもじれつが64KBをこえるばあいにははいれつをつかうこと、(3)おおきなサイズのもじれつのしょりはなるたけさけできるだけちいさいもじれつそうさをさきにじっこうするようにくふうすること、などをテクニックとしてしょうかいしている。ちなみにこのテクニックはOperaやSafariにたいしてもこうかがあったとしているが、Firefoxにたいしてはこうかがなかったこともめいきされている。GCやJScriptエンジンへのげんきゅうもあり、IEでせいのうをはっきできるJavaScriptコーディングにやくだつじょうほうだ。JavaScriptプログラマはいちどStringPerformance:GettingGoodPerformancefromInternetExplorerにめをとおしておくとよさそうだ。

(ごとうだいち)

[マイコミジャーナル]

この記事を、ひらがな解除する