• 締切済み

Javascriptのメモリ管理について

JavascriptでAjax等を用いた開発をしておりますが、とにかくメモリを食ってしまい困っています。 Google chromeのタスクマネージャで見ると、最初にページを開いた瞬間は占有メモリが数MBですが、ページ内で色々なアクションを起こすうちに次第にメモリ使用量が増え、最後には数十~数百MBにまで達します。 原因としては以下2点が推測されると思います。 1.アクションに応じてサーバから動的にデータを読み込んでいる(各回のサイズは数百KB程度) 2.Yahoo! User Interfaceを用いている(RichTextEditor、TreeViewなど) 特に後者がかなり怪しいです。前者に関してもメモリリークの可能性もあります。 質問は以下です。 ・メモリ使用量をDomもしくはObject単位で仔細に分析してくれるツール等はありますか? ・メモリリークを検出できるツール類はありますか? ・メモリリークをしないためにはどうすればよいでしょうか? ・一般的に占有メモリは何MB程度まで許容されるものでしょうか?(肌感覚で構いません) 以上のうち、どれか一つだけでも結構ですので、御存知でしたら御教示下さい。 宜しくお願い致します。

  • i_110
  • お礼率60% (28/46)

みんなの回答

  • LOHA
  • ベストアンサー率52% (203/388)
回答No.1

良さそうな記事を見つけたので載せておきます。 Ajaxにおけるメモリリークの注意点:http://d.zeromemory.info/2006/03/06/memory-leak-ajax2.html おそらく、イベント登録時に循環参照してしまっているのではないでしょうかね。 参考までに。

i_110
質問者

補足

御回答ありがとうございます。 そのページは過去に見たことがあります。 質問の3点目に対して御回答頂いたのでしょうが、質問の表現があまり適切ではありませんでした。申し訳ありません。 Domとの循環参照等がメモリリークの原因となりやすいことは承知しております。問題は、それを発見するためのシステマチックな手順やツールが見当たらないことです。 潜在的なメモリリークの要因となる箇所をsuggestionしてくれるツールがベストですが、実際にはなかなか技術的に難しいと思われます。なので、javascriptのメモリ状態を一覧表示してくれるようなツールがあるだけでも随分助かります。 宜しくお願い致します。

関連するQ&A

  • Firefox3のメモリ管理

    Firefox3のメモリ管理 EPSON NJ2050 メモリ2GB(128MBをRAMにしているので1.6GB) XP SP3でFirefox3.6.8を使用しています。 1.タブを同時に開いていくとタスクマネージャー:プロセスで見るメモリ使用量が増えていきますが、タブを閉じても元に戻らない。これはメモリリークでしょうか。 2.プロセスで見るメモリ使用量は百数十MBなのに、Firefoxを終了させてタスクマネージャーパフォーマンスのページファイル使用量は二百数十MBも減少します。この差はいったい何なのでしょうか。 3.config.trim_on_minimizeを設定しているので最小化したときメモリ使用量は10MB程度まで減りますが、ページファイル使用量はほとんど同じです。100MB以上はページファイルも減らないといけないと思うのですがなぜでしょうか。 メモリが多いのでさほど困っているわけではありませんが、メモリの使用が何か不可解です。よろしくお願いします。

  • 実際につんでるメモリと使用可能メモリ

    こんにちわ。 私のPCはXPでPentium4 CPU1.60GHz メモリは256+512積んでます。 早速質問に入りたいと思います。 最近本でメモリをある程度積んどけばページングファイルがないほうが早い(?)とのことでしたのでページングファイルなしに設定してみました。 その後DirectX診断ツールでメモリとページファイルのところを見たところ メモリ:766MB RAM ページ ファイル:***MB使用中504MB使用可能 となってます。このメモリと使用可能の差はなんなのでしょうか? あとページングファイルはやはりあったほうがいいのでしょうか?(特にメモリを使うようなことはしません)

  • メモリ残量についてお聞きしたいことが

    パソコンど素人です。このまえ「メモリの残量を確認するには」というのでダイレクトX診断ツールで見るというのがありましたが。 保存してある画像や動画を一箇所に集めたとしてプロパティでみるとサイズが17GBを超えているのですがツールには、メモリ:1016MB RAM ページファイル:632MB 使用中 1810MB 使用可能とかいてあります。1024MBが1GBなのにメモリと保存してあるサイズが大きく差がありますなぜなのでしょうか?できれば診断ツールの見方も教えてほしいです(TωT)

  • 搭載メモリと増設メモリ量について

    今週の日曜日に新しい『ノートン・インターネット・セキュリティ』を インストールしました。すると今までよりもメモリを使うようでパソコン 環境が重くなってしまいました。そこでメモリを増設しようと思いますが どの程度増設すべきかを教えて下さい。 [環境] OS:Windows XP Home SP2 PC:NEC VALUE STAR VL570/6 HDD:100GB MEM:256MB(搭載メモリ) [タスクマネージャ情報] ページファイル使用量:350MB コミットチャージ合計:350MB コミットチャージ制限値:545MB コミットチャージ最大値:434MB [質問] 私の希望ではページファイル使用量が 350MB を越えるとファンが作動するため このときに CPU 使用率 100% にならないようにしたいのです。 つまり、搭載メモリが 256MB で IE6.0 のみの起動でもページファイル使用量が 350MB以上になります。もし 256MB 増設すればそれなりに最適なパソコン作業が 出来るのでしょうか?どのぐらい増設すべきかアドバイスをお願いします。

  • メモリリーク

    メモリリークに関する質問です。 現在稼動しているサーバーについてなのですが、メモリの使用量が実際に搭載しているメモリ量を超えてスワップが発生してしまっています。一日当り数MBのメモリが消費されてしまっているようなのですが、タスクマネージャー上ではそんなに増えているアプリケーションはありません。 プリンタドライバが悪さをしているとの話もあるのですが、調査の仕方がわからず困っています。 まずはこれがメモリリークなのかどうかがよくわからないのですが、調査方法等ご存知の方、知恵を貸してください。よろしくお願いいたします。 【ちなみに環境は】 ・Windows2000Server ・ORACLE9.0.1 ・プリンタ用のパッケージ ・VC++及びVBにて開発 【こんなシステムです】 ・一日に1400枚程度の紙を印字 ・RS232Cを使用して他のコンピュータと通信を  一日に1400回程度行っている  (1回あたり256バイト)

  • メモリについて

    こんにちは。 うちのノートパソコンはOSがVista、メモリは2GBなのですが、メモリの使用量について質問です。 パソコンを立ち上げた時、常駐ソフトはセキュリティソフトくらいのものですが、 タスクマネージャで見たところメモリの使用量は下記のものになりました↓ 物理メモリ(MB) 合計 2037 キャッシュ済み 1121 空きメモリ 31←(毎秒数値に若干変動あり) カーネルメモリ(MB) 合計 214 ページ 127 非ページ 87 CPU使用率 7~15%くらい 物理メモリ 57% なのですが、これって一般的な数値でしょうか?? 壊れていないか少し不安になったもので皆様にお聞きしました。 お時間あれば、よろしくお願いします!

  • 最小化したプログラムのメモリ使用量について

    最小化したプログラムのメモリ使用量について タスクマネージャーのプロセスタブを開き、各プロセスが使用しているメモリ量を確認します。 たとえば、IE(当方、社内規定によりIE6利用中)が100MBメモリを使用しているとします。 これを最小化ボタンでタスクバーに納めると、メモリー使用量が激減します(場合によっては2MB程度まで)。 これは、どういう意味なのでしょうか? PFの使用量が変化しないということは、仮想メモリーにデータを退避させ、物理メモリ上の空き領域を増やしているとみていいのでしょうか? 過去の質問の中で、UI部分のメモリーが必要なくなったために少なくなるという回答を見ましたが それは違うのではないかと思っています(キャッシュなどを考えると2M程度で収まるとは到底思えない)。 そもそもIE6はメモリーリークを起こすので、その分が開放された、という話を聞いたことがあります。 これは正しいのでしょうか? 取り立てて困っているわけではありませんが、好奇心というか知りたがりというか・・・。 ご教授のほど、よろしくお願いします。

  • メモリの最適化、どれが最適か分からない

    glary utilitiesという便利な物を使って 色々クリーンにしています。一つ分からないのは「メモリの最適化」です。最適化というページとオプションというのがあります (最適化) では出ている表では ●CPUが9~35%をうろちょろしているのですが ●物理的メモリ使用量グラフというのには750MB中500MBくらいに線が流れています ■その下のメモリ容量を調節するところでは ゲージみたいのに左から二番目に針が置かれていて その最右には113MBと出ています 次のクリップボードをクリアというのはマメに消しているのでゼロです。 (オプション) では ●メモリの最適化を有効にするというのにチェックが入っています ●次に空きメモリがこの数値になったら自動的に最適化 というのに75MBと設定されています ●次に空きメモリを増やすというのには 188MBとなつています 次にCPUの使用率が右以下になったときには、は、10%となっています さて質問です:このオプションで設定されている数字はこれで合っているのでしょうか どうも違うのではと思うのですが滅多なことをして変になりたくありません。お分かりの方 教えてください。 私のパソコンはメモリを増設して751MBあり、空きディスクは60%もあると出ているのに どうしていつも映画を見たりyoutubeをちょっと行き来しただけで仮想メモリが足りませんと出るでしょう。年中一時ファイルを消去しているんですが。 もしかしてメモリがいっぱい余っているのに設定が低くてこうなりますか? よろしくお願いします

  • メモリが足りないのでしょうか???

    javaで、ファイルから読み込んだデータを、解析して、 そのまま、別ファイルにか書く処理をつくりました。 しかし、以下のようなエラーが発生して、途中で終了してしまいます。 ファイルサイズは40MB程度。 20MB程度の時は、うまく行きます。 Exception in thread "main" java.lang.OutOfMemoryError <<no stack trace available>> 実行時、CPU使用率は、100%までいってしまうのですが、 メモリ使用量は、最大値の半分程度で、余裕はありそうなのですが、 メモリを使い過ぎなのでしょうか? メモリ最大値の80%ぐらいまで使いたいのですが 設定方法などありますか?

    • ベストアンサー
    • Java
  • 物理メモリとスワップ(仮想メモリ)について

    windows xp 搭載メモリ:512MB の環境です。 タスクマネージャでメモリ使用量を見ると、 物理メモリ 合計:514992(約512MB) 利用可能:251928KB PF使用量(物理メモリで利用されている量+スワップ?):340MB となっていまして この状態というのは 物理メモリで約260MB使っていて(合計-利用可能) スワップが約80MB(PF使用量-260MB) 発生しているということなのでしょうか? 利用可能な物理メモリが251928KBもあるのに、 残りの物理メモリを使わず、スワップが発生しているように 見えるのですが、物理メモリに、ある程度利用可能なメモリ領域が あっても必ず仮想メモリを利用するものなのですか? 自分としては、物理メモリの使用量がMAXになってから 搭載している物理メモリの最大値を超えて、溢れたからそらに 対応するために、仮想メモリが使われるような概念をもっていますが、 違いますでしょうか? 頭が混乱中ですw ご教授お願いいたします。

専門家に質問してみよう