- 締切済み
Javascriptのメモリ管理について
JavascriptでAjax等を用いた開発をしておりますが、とにかくメモリを食ってしまい困っています。 Google chromeのタスクマネージャで見ると、最初にページを開いた瞬間は占有メモリが数MBですが、ページ内で色々なアクションを起こすうちに次第にメモリ使用量が増え、最後には数十~数百MBにまで達します。 原因としては以下2点が推測されると思います。 1.アクションに応じてサーバから動的にデータを読み込んでいる(各回のサイズは数百KB程度) 2.Yahoo! User Interfaceを用いている(RichTextEditor、TreeViewなど) 特に後者がかなり怪しいです。前者に関してもメモリリークの可能性もあります。 質問は以下です。 ・メモリ使用量をDomもしくはObject単位で仔細に分析してくれるツール等はありますか? ・メモリリークを検出できるツール類はありますか? ・メモリリークをしないためにはどうすればよいでしょうか? ・一般的に占有メモリは何MB程度まで許容されるものでしょうか?(肌感覚で構いません) 以上のうち、どれか一つだけでも結構ですので、御存知でしたら御教示下さい。 宜しくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- LOHA
- ベストアンサー率52% (203/388)
回答No.1
良さそうな記事を見つけたので載せておきます。 Ajaxにおけるメモリリークの注意点:http://d.zeromemory.info/2006/03/06/memory-leak-ajax2.html おそらく、イベント登録時に循環参照してしまっているのではないでしょうかね。 参考までに。
補足
御回答ありがとうございます。 そのページは過去に見たことがあります。 質問の3点目に対して御回答頂いたのでしょうが、質問の表現があまり適切ではありませんでした。申し訳ありません。 Domとの循環参照等がメモリリークの原因となりやすいことは承知しております。問題は、それを発見するためのシステマチックな手順やツールが見当たらないことです。 潜在的なメモリリークの要因となる箇所をsuggestionしてくれるツールがベストですが、実際にはなかなか技術的に難しいと思われます。なので、javascriptのメモリ状態を一覧表示してくれるようなツールがあるだけでも随分助かります。 宜しくお願い致します。