Firefox用のメモリツール開発をモジラが検討中
Webブラウザはアプリケーションプラットフォームに向かって進化しているというお話を先日したばかりでしたが、ちょうど同じ話題をMozilla LabsのブログでBen Galbraith氏が取り上げていました(参考記事:Webブラウザの進化は、FlashとSilverlightを飲み込んでいく、SilverlightのライバルはFlashじゃなくて、SilverlightのライバルはFlashじゃなくて。
そのエントリは「A New Memory Tool for the Web」。長文のエントリです。Galbraith氏は2つの言葉を引用して、Webブラウザがアプリケーションプラットフォームに向かっている例をはっきりと示してくれました。
1つめは、元ネットスケープのマーク・アンドリーセン氏の言葉。
[An operating system] is just a bag of drivers.
(オペレーティングシステムは)ただのドライバの集合体さ
ありましたね、この言葉。もう1つはグーグルがGoogle Chromeをリリースしたときに一緒に公開した漫画の1ページ目から。
Today, most of what we use the web for on day-to-day basis aren't just web pages, They're APPLICATIONS.
毎日Webブラウザを使って見ているのは単なるWebページじゃない。それらはアプリケーションなんだ
だからグーグルは高速なWebブラウザをリリースした、という説明でした。
Galbraith氏は、こうしてWebブラウザがアプリケーションプラットフォームに向かう方向性をはっきり示したうえで、その進化の途中でメモリ管理の課題が存在している、としています。ざっくりとエントリの内容を紹介しましょう。
- Mozilla Labsは、WebブラウザをOSグレードのアプリケーションランタイムにしようと真剣に取り組んでいる
- Webアプリケーションはサクサク動くべきだ
- しかしWebアプリケーションの消費メモリが増えると動作は遅くなる
- 遅くなる原因には、スワップとガベージコレクションの2つがある
- メモリリークが起きていれば、それも問題だ
- しかしそうした問題を解決するために、Webブラウザ上で動作しているアプリケーションごとやデータ構造ごとのメモリ消費量などが分かるツールがない
- そこで、アプリケーションごとのメモリ消費量、ガベージコレクションのサイクルなどが分かるツールを作ろうと思う
- 読者に質問。こうした方向性は正しいだろうか? ほかにアイデアはあるだろうか?
最近はさまざまなAjaxライブラリの登場で、以前より大規模なJavaScriptアプリケーションが書きやすくなってきていますから、遅かれ早かれこの種のツールの必要性は高まっていくでしょう。
ざっとネットを検索してみると、Internet ExplorerもFirefoxもメモリリークはそれなりに起きているようで、有名なところではGoogle Mapsでもメモリリークがあった模様です。検出ツールもあるようですが、Galbraith氏が提案する、さらに詳しく状態を参照できるツールのニーズもありそうですね。
Galbraith氏のエントリに対する読者からのコメントを見ても、「ぜひ使ってみたい」「その問題には以前から悩まされていたんだ」といった賛同の声がほとんど。この様子ではFirefox用のメモリツールの登場は間違いなさそうです。
参考記事 on the Web
- Mozilla Labs » Blog Archive » A New Memory Tool for the Web
- IEのメモリリーク問題 - ppBlog
- Ajaxするときメモリリークに気をつけろ - suVeneのアレ
- [JS]MicrosoftからJavaScriptのメモリリーク検出ツール | コリス
- JavaScriptのメモリリークを検出するFirefox拡張「Leak Monitor」:phpspot開発日誌
- DOM オブジェクトとメモリリーク: Days on the Moon
- れぶろぐ - [JavaScript] innerHTML がメモリリークを引き起こす例
- IEでメモリリークしてる箇所を検出しまくる方法 - 電脳戦士ハラキリ -SE道とは死ぬ事と見つけたり-
- Ajax うきうき Watch 第7回 メモリリークが少なくなったGoogle Maps APIのバージョン2が登場
- IEのJavascriptメモリリークに対応する - Vox