問題タブ [heap-profiling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
907 参照

java - Windows でのみ JRE からヒープ ダンプを取得する

当社の製品は、Windows 上の JRE (JDK なし) のみを使用して、顧客のサーバー上で実行されます。

フラグを介して OutOfMemoryError のヒープ ダンプを取得できることはわかっています。

ただし、JRE JVM プロセスから事前にヒープ ダンプを取得する方法はありますか?

健全なヒープ ダンプをいくつか取得し、それらを OutOfMemoryError で取得したヒープ ダンプと比較することを計画していました。

できれば、顧客にこのツール/ユーティリティをダウンロードしてもらい、サーバー上で実行して自由にヒープ ダンプを取得できるようにする必要があります。

jvisualvmを試してみましたが、jvisualvm には当社の製品 jVM が表示されませんでした。その時点で実行されている JVM の一部のみがリストされ、その時点で実行されているすべての JVM がリストされるわけではありません。さらに、jvisualvm は非常にかさばります。

PS: ヒープをダンプするために JVM のホストで実行できるサードパーティのユーティリティはありますか? また、お客様はこの時点で JRE をアップグレードすることはできません。そして、前の質問に対する回答はどれも回答として選択されていません!

ありがとうございました、

0 投票する
1 に答える
956 参照

java - Java プログラムの実行時の非ヒープ メモリ使用量のわずかな違い

Java のマルチスレッド エコー サーバー用の単純なコードがあります (受信したものをクライアントに返します)。非ヒープメモリ使用量を含むさまざまなリソースをプロファイリングしています。JVMの非ヒープメモリもJVMの起動時に作成されることを理解していますが、クラスごとの構造を保存し、コールスタック、ネイティブコードによって割り当てられたメモリ(オフヒープキャッシングなど)、メタスペース、およびメモリを含みますJIT コンパイラ (コンパイルされたネイティブ コード) によって使用されます。しかし、主な質問が 2 つあります。

1) 非ヒープ メモリの使用量は、時間の経過とともにわずかに増加します。わずかな増加ですが、このメモリ使用量のわずかな増加の原因は何ですか?

2) 通信するクライアントの数が増加しても非ヒープ メモリの使用量はほぼ同じですが、大きく拡大すると、同様に、クライアントの数が増加するにつれてわずかに増加することがわかります。その主な理由は何ですか?新しいスレッドに必要なスペースが増えたことが原因かもしれないと推測していましたが、これらのスレッドは何を行ってこのわずかな増加を引き起こしているのでしょうか?

3) ヒープ メモリについても、上記 2 と同じ違いが見られます。ただし、違いははるかに大きいです。その理由は何ですか?私の推測では、メッセージの保存に必要なバッファー サイズが増加しました。

ここに画像の説明を入力

0 投票する
1 に答える
289 参照

c++ - インストールせずに gperftools/Heaptrack を使用する

UNIX プラットフォームで C++ アプリケーションのヒープ プロファイリングを実行しようとしています。valgrind の massif を試してみましたが、アプリケーションが非常に遅くなり、アプリケーションの動作に影響します。

他のオプションを探していたところ、 gperftoolsheaptrackに出会いました。これらはここで私の問題の実行可能な解決策になる可能性がありますが。ただし、これらのツールをインストールするのに十分な権限がないという制限があります。

Unixにインストールせずにgperftoolsまたはheaptrackをセットアップする方法はありますか?

前もって感謝します

0 投票する
1 に答える
33 参照

javascript - ドミネーター オブジェクトは、それが支配するオブジェクトへの参照を欠いている可能性があります。

私はクロム開発ツールのドキュメントを調べていました。メモリ分析に関するこのページでは、次のように述べています。

各オブジェクトにはドミネーターが 1 つだけあるため、ドミネーター オブジェクトはツリー構造で構成されます。オブジェクトのドミネーターは、それが支配するオブジェクトへの直接参照を欠いている場合があります。つまり、ドミネーター ツリーはグラフのスパニング ツリーではありません。

子オブジェクトを参照せずに親オブジェクトがどのようにして子のドミネーターになったので、取得できませんでした。つまり、コードのどこかで次のように記述されていたはずです。

var parent = {child : child}; var child = {name : 'child'};

それが、親が子の支配者になった方法です。

しかし今では、ドミネーターは子供への参照を欠いているかもしれないと言っています. この場合の状況の例を教えてください。

0 投票する
1 に答える
205 参照

jprofiler - リモート接続用に JProfiler でトリガーを設定する

JProfiler 10 を 経由でリモート サーバーに接続していますQuick Attachここに画像の説明を入力

タイマーでスナップショットを保存するトリガーを有効にする方法はありますか? これまでのところ、これをリモート接続で機能させることに成功していません。

ローカル接続では期待どおりに機能します。