2015-10-14 10 views
8

Javascriptアプリケーションで最もガベージコレクションされるオブジェクトのタイプを知る方法はありますか?JS:コンストラクタがガベージコレクションの対象となるオブジェクトのプロファイル

私はヒープスナップショットを手に入れることができますが、最も一般的で、最も多くのガベージコレクションではないオブジェクトだけを示しています。

ヒープ割り当ては、オブジェクトクラスに関する詳細情報を提供しません。

+0

JSの動作環境は大きく異なります。例えば。 nashornで実行している場合は、JVMプロファイラを使用するだけで済みます。 – the8472

+0

解決方法を見つけましたか? – Jodes

+1

@Jodes参照http://stackoverflow.com/questions/39429647/how-to-detect-the-memory-allocations-that-are-triggering-garbage-collection-in-j/ – guest271314

答えて

1

どのJavaScriptランタイムエンジンを使用しますか?各エンジンには独自のGCとGCイベントを監視する独自の方法があります。 1つのGC実装についてもっと学びたい場合は、Chrome V8エンジンをお勧めします。https://developers.google.com/v8/ github https://chromium.googlesource.com/v8/v8.gitからソースを取得すると、src/heap/gc-tracerというファイルが見つかります。[h | cc]多くの機能を提供し、プロファイリングのニーズに合わせて追加することができます。

+0

ダニエル、これは質問に答えません。 GCエンジンの実装は問題ではありません。必要なのは、GCが収集しているjavascriptオブジェクトを見つける方法です。 – Jodes

+0

ソースコードを見てください。 Chrome V8を使用している場合は、その情報を取得できます。 –

+0

申し訳ありませんが、私は従いません。 JavaScriptを高速化するためにV8コードを使う方法は?それを変更し、デバッグ情報を取得するカスタムC++のjavascriptインタープリタを構築することによって? – Jodes

1

私は、複数のヒープスナップショットを取ってスナップショットを比較して、どのオブジェクトが収集されているのかを識別することで、これを行うことができると思います。 thisの回答を参照できます。希望さえすれば助けてくれるでしょう:)

関連する問題