問題タブ [clrprofiler]

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 に答える
1527 参照

debugging - ホストされているときに CLRProfiler が CLR に接続しない

CLR をホストして C# を洗練された「スクリプト」言語として使用するネイティブ Win32 アプリケーションがあります。

メモリ リークが発生したため、Microsoft の CLR Profiler を使用して調査することにしました。(リークが管理されているかどうかはわかりませんが、このツールがそれを明らかにするのに役立つことを望んでいました。)

ただし、CLRProfiler に (ネイティブ) アプリケーションを開始するように指示すると、アプリケーションは常に実行の最初の 1 秒以内に CLR を開始しますWaiting for application to start common language runtimeが、アプリケーションが明らかにマネージド コードを実行しているにもかかわらず、CLRProfiler はプロンプトを表示し続けます。

CLRProfiler は、マネージ専用プログラムが CLR を開始するために使用するスタブによって開始された場合にのみ CLR に接続でき、アプリケーションが明示的にロードされて起動された場合ではありませんMSCOREE.DLLか? それとも、私は単に何か間違ったことをしていますか?

または、CLRProfiler がうまく機能するように CLR を開始するときに、ネイティブ アプリケーションで実行する必要がある (できれば単純な) ものはありますか?

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

clrprofiler - CLRProfiler による要約: ヒープ統計値は 0 です

.NET 4 用の 64 ビットの CLRProfiler を使用しています。

単一の Web サイトを実行している実行中の iis ワーカー プロセスに CLRProfiler をアタッチしています。

概要ビューのすべての値は常にゼロです。

Heap Dumps だけが 1 の値を持ち、Heap Graph を見ることができます。

「プロファイル アプリケーション」を使用して exe にアタッチした場合にのみ、概要ビューに値が表示されます。

概要ビューに値がない理由を知っている人はいますか?

0 投票する
0 に答える
36 参照

.net - 生き残ったオブジェクトをプロファイリングする方法

CLRプロファイラーが正しいツールかどうかはよくわかりません..しかし、私が達成しようとしているのは、メソッドを終了した後に破棄されるかどうかなど、メモリ内のオブジェクトの状態を確認できるようにすることです..

CLR プロファイラーが適切なツールではない場合、誰かが提案できますか?

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

.net - CLR プロファイラーと 0 ヒープ統計

CLR プロファイラーを使用した ASP.NET MVC Web アプリケーションのヒープ統計割り当てが 0 になるのはなぜですか?

ここに画像の説明を入力

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

c# - ガベージを収集していないのに、サーバーのガベージ コレクションの方が速いのはなぜですか?

私はデータ構造を書いています。ファイルに設定<gcServer enabled="true" />するapp.configと、プログラムは 200 ミリ秒で 500,000 項目を追加します。設定<gcServer enabled="false" />すると、300ミリ秒かかります。つまり、このフラグを false に設定すると、a で測定されるように、一貫して 50% 長くかかりStopwatchます。

ガベージコレクションを行っていないため、これがなぜなのか疑問に思っています。自動的に行われることもありますが、CLRProfiler でプロファイリングした後、0 個のコレクションが発生していることを確認できます。

ここに画像の説明を入力

なぜこれが起こっているのか誰にも分かりますか?ガベージ コレクタが実行されていない場合、なぜサーバー ガベージ コレクタの方がはるかに高速なのですか? 速度の違いを確認しているコードは次のとおりです。

0 投票する
2 に答える
574 参照

c# - VS 2015 メモリ使用量プロファイラーで予期されるオブジェクトが見つからない

メモリ使用量に関連する VS 2015 の診断ツールで使用しようとしている次の簡単なプログラムがあります。

このアプリケーションのプロジェクトのプロファイリング中に、いくつかのスナップショットを撮り、1000ボックス化されList<string>+Enumeratorたオブジェクトが表示されることを期待していました。たとえば、JetBrains のdotMemory製品ではこのような情報を取得します。しかし、何らかの理由で、VSのツールでこの情報を見ることができません...明らかに何かが欠けています...誰かが私を正しい方向に向けることができますか?

ここに画像の説明を入力

上記のスナップショットでmscorlibわかるように、実行中のプログラムに関する情報が表示されない場合にのみ、モジュールに関する情報を取得します。何が欠けていますか?...以下の詳細情報:

  • Start Diagnostic Tools Without Debuggingビジュアルスタジオで使用しました
  • スナップショットを撮って開いた後、オプションの選択を解除しCollapse small objectsて、これが情報を隠しているかどうかを確認しましたが、それも役に立ちませんでした.

更新 (ユーザーの回答に応答) : dotMemory バージョン 4.4 を使用しています。以下は、私が取得したデータのスナップショットです。注:メッセージが表示Collect Allocationsされたら、キーを押す前に必ずボタンをクリックしてください。Begin

ここに画像の説明を入力

0 投票する
0 に答える
30 参照

garbage-collection - CLR プロファイラーの LOH サイズがアドレス LOH サイズによるオブジェクトと一致しませんか?

CLR プロファイラーを使用してプログラムのメモリ使用量をチェックしていますが、LOH の割り当てに関心があります。基本的に、1 MB サイズのファイルを 10 個ずつ Azure データ レイク サービス ファイルに並列に割り当てています (concurrentAppend API を使用)。理論的には、LOH のサイズは 10 MB ですよね?レポート プレビュー (画像 1) では、LOH ヒープ バイトが 3.195 MB であることがわかります。アドレスでオブジェクトをチェックすると(画像2) -> LOHは正確に10MBを割り当てます(カーソルをLOHバーの上に動かしてチェックし、それぞれ1MBのsystem.byte[]データを持つ10個のアドレスを見つけました。

プレビュー レポートで 3.199 MB になるのはなぜですか??

CLR プロファイラー レポートのプレビュー

アドレスウィンドウによるオブジェクト