問題タブ [perfview]

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 投票する
0 に答える
225 参照

.net - AsyncPinned ハンドルがメモリに保持されている理由

アプリケーションのメモリの問題を調査しようとしています。.NET ヒープ サイズは次のとおりです。

perfView を実行すると、以下に示すように、AsyncPinned ハンドルがほとんどのメモリを消費していると表示されます。

ここに画像の説明を入力 ここに画像の説明を入力

これは、!Gchandles が示しているものです。

AsyncPinned ハンドルについてはよくわかりませんが、どのオブジェクトがこれらのハンドルを作成しているのか、誰がこれらのハンドルを保持しているのか、なぜこれらがクリーンアップされないのかを知るにはどうすればよいでしょうか?

編集 これについて重複するリンクを読みましたが、そのリンクで説明されていないこれらの AsyncPinned ハンドルが作成された場所を知る方法を見つけようとしています

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

.net - PerfView を使用してメモリ リークを検出する

統合サービスとして使用されている Windows サービスでのメモリ リークのトラブルシューティングを行っています。

「doIntegration()」呼び出しごとに、メモリ使用量が呼び出し前よりも高くなり、呼び出しごとに約 0.5 MB 増加することがわかります。

PerfView を使用して、メモリ リークの可能性がある場所を特定しようとしました。

トラブルシューティング方法:

1) 最初の doIntegraion 呼び出しの前にヒープ スナップショットを取得する

2) doIntegration 呼び出しの後にヒープ スナップショットを取得する

3) ステップ 2 を複数回実行する

4)呼び出しごとにどのメソッド/グループが高くなるかを確認します

5) 個別のスナップショットの差分を使用して、メモリ リークが発生している場所を特定します。

LIB mscorlib!RuntypeTypeが毎回高くなるメソッド/グループであることがわかります。それを参照するものを確認しようとすると、

  • 固定ハンドル
    • .NET ルート

そして、ツリーをこれ以上拡張することはできません。

ビュー RefTree を選択すると、さらに多くのものが表示されます。

  • ルート 100%
    • .NET ルート 100%
      • ピンハンドル 70.6%
        • LIB mscorlib!RuntimeType 46%
        • LIB mscorlib!reflection.... 13.4% ...
      • 静的変数 30.7%
        • ns.ConfigurationSettings 5​​9.5%
        • ns.Leaks.ConfigurationSettings -33.3%

いくつかのスナップショットで diff を実行しましたが、インクリメントする唯一のメソッド/グループは Pinned ハンドルであり、それらは mscorlib タイプのみを参照しています。

他の誰かがこの種の問題を抱えていましたか?

問題は、XMLSerializer を使用した Model から XML へのシリアル化にあるのではないかと思いますが、よくわかりません。

メモリリークを見つけようとする別の方法を知っている人はいますか?

ありがとう :)

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

c# - StackTrace コンストラクターとメソッド名の取得によるパフォーマンスへの影響

ロギング ライブラリにこのコードがあります

PerfView ツールを使用した私のパフォーマンス分析によると、次のように表示されます。

PerfView etl ファイルからの画像

私が追加したコードによるパフォーマンスへの影響を知っている人はいますか? はいの場合、パフォーマンスに大きな影響を与えずにメソッド名を取得できる他の方法はありますか?

現在、4 コア マシンで 1000 TPS として実行しています。そして、CPUの15.1%を使用していることがわかります

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

c# - X509Store の store.Open および store.Certificates.Find メソッドによるパフォーマンスへの影響

ライブラリにこのコードがあり、新しいリクエストが作成されるたびにこのメソッドが呼び出されます。したがって、基本的には1秒あたりのリクエスト数が1000で、1000回呼び出されます。PerfView ツールを使用していたとき、CPU の 35% がこの方法で使用されていることに気付きました。最大の原因は、store.Open および store.Certificates.Find メソッドです。

他の誰かが自分のコードで同様の問題を発見しました。また、これによるパフォーマンスへの影響を解決するために何をしたかを共有できる場合。

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

perfview - PerfView: GC Heap Net Mem Stats を開くと時間がかかりすぎます

私は比較的小さな etl ファイル (まとめて 100MB) を持っていますが、GC Heap Net Mem Stacks をクリックして長い時間 (10 分以上) 待っても、「灰色の状態」から戻ることはありません。

これが「正常」であるかどうかのアイデアはありますか?

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

.net - 不特定の ETW イベント - GC/Mark、GC/Triggered、GC/GenerationRange など

perfview を実行して、GC イベントを確認しました。perfview イベント ビューで見つけることができるイベントのリストがあります - https://msdn.microsoft.com/en-us/library/ff356162(v=vs.100).aspx

私の質問は、https://msdn.microsoft.com/en-us/library/ff356162(v=vs. 100).aspx ? それらの意味は何ですか?

ここに画像の説明を入力