12

現在Google O3D WebGLフレームワークを使用してアプリケーションを開発しています.JavaScriptを集中的に使用しています。この機能は約20%しか完了していませんが、アプリケーション自体は、約160メガバイトのメモリを使い始めていますが、アプリケーションを稼働させたままにしておくと、Chromeでは約200kb、FFでは2メガバイト、画面がリフレッシュされるときに表示されます。私はこれを書いているので、私はChrome 9を稼働させておきました。そして、それはちょうど400メガのメモリ使用量に達しました。私は今FFの使い方で自分自身を悩ましています。JavaScriptを最適化し、メモリリークを防ぎ、基本的にこれに取り組むのに役立つ何か本当に良いドキュメントを探しています。また、私に役立つすばらしいツールへのリンクもありがとう。前もって感謝します。Chrome/Firefox(Minefield)でのJavascriptのメモリ使用量とデバッグ

編集:私はMozilla performance toolsに出くわしましたが、私は使いやすいものが必要です。好ましくはGUI、または少なくともノブのフレンドリーガイドです。また、これらのツールの多くはLinux用(私はWin7を使用しています)または購入が必要/コマンドラインのみです。 +私はChromeのために何かを見たいと思っています:)しかし、私は最も有用な情報を提供する答えを受け入れます。

編集:Google Chromeのデベロッパーツールでは、10メガバイトのメモリ使用量しか報告されていません。残りの部分はどこから来ているのか分かりません。

+0

3Dアプリケーションでは、このように多くのメモリを使用(160MB)することは珍しくありません。実際の3Dゲームがどのくらいのメモリを占めているかを考えてください。その上、あなたのアプリはJavaScriptで書かれています!しかし、あなたが経験しているメモリの絶え間ない増加はおそらく何らかのメモリリークによるものですが、それ以上はあなたを助けることはできません。 –

+1

@musicfreak:本当に、私はかなりのメモリを占有すると予想して、ユーザーにはまともなスペックのPCを必要としますが、fire foxのメモリ使用量の増加は、それを開いたままにしておいてください。私はこれ以上最善を尽くす前に、この問題に取り組んでいます。私は将来このようなことに取り組んでいきたいと思っています:) – Chris

+1

ええ、確かに、私は間違いなくメモリリーク(WebGL実装やアプリケーション、おそらく後者)のためだと思っていますが、元のメモリ使用量はおそらくあなたの責任ではないことに言及したいと思います。 :) –

答えて

7

まだSpeed Tracerをチェックしたことがありますか?それはあなたが私が必要とするものの多くを与えるはずです。

メモリの使用状況では、「プロファイル」タブのChromeデベロッパーツールでヒーププロファイルを実行したほうがよいでしょう。複数のヒーププロファイルを比較して、メモリ使用量を調べることができます。

+0

私はスピードトレーサを見てきましたが、それは定期的にリフレッシュを実行するタイマーを示していますが、メモリ使用量が増えたときには遅くなります。私はメモリヒープを取得することができましたが、それは10メガバイトのアイテムを表示しますが、これは残りを説明しません。私は自分のコードが本当に悪いと感じている、私はどこかについて読んで削除機能を使用していない。これはおそらく私が調べる必要があるものです。たとえば、ほとんどの場合、IDisposableインターフェイスを継承したクラスでdisposeを使用することを勧めます。私はすべての私の3Dオブジェクトのパラメータのカスタム関数のクラスを持っています – Chris

+0

あなたのコードのすべての未使用のプロパティに削除を追加するツールが必要です - それは私が支払うツールです。 – Chris

+0

最近のバージョンのChromeには 'about:memory'ページもあります。 –