問題タブ [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.
.net - AsyncPinned ハンドルがメモリに保持されている理由
アプリケーションのメモリの問題を調査しようとしています。.NET ヒープ サイズは次のとおりです。
perfView を実行すると、以下に示すように、AsyncPinned ハンドルがほとんどのメモリを消費していると表示されます。
これは、!Gchandles が示しているものです。
AsyncPinned ハンドルについてはよくわかりませんが、どのオブジェクトがこれらのハンドルを作成しているのか、誰がこれらのハンドルを保持しているのか、なぜこれらがクリーンアップされないのかを知るにはどうすればよいでしょうか?
編集 これについて重複するリンクを読みましたが、そのリンクで説明されていないこれらの AsyncPinned ハンドルが作成された場所を知る方法を見つけようとしています
.net - PerfView を使用してメモリ リークを検出する
統合サービスとして使用されている Windows サービスでのメモリ リークのトラブルシューティングを行っています。
「doIntegration()」呼び出しごとに、メモリ使用量が呼び出し前よりも高くなり、呼び出しごとに約 0.5 MB 増加することがわかります。
PerfView を使用して、メモリ リークの可能性がある場所を特定しようとしました。
トラブルシューティング方法:
1) 最初の doIntegraion 呼び出しの前にヒープ スナップショットを取得する
2) doIntegration 呼び出しの後にヒープ スナップショットを取得する
3) ステップ 2 を複数回実行する
4)呼び出しごとにどのメソッド/グループが高くなるかを確認します
5) 個別のスナップショットの差分を使用して、メモリ リークが発生している場所を特定します。
LIB mscorlib!RuntypeTypeが毎回高くなるメソッド/グループであることがわかります。それを参照するものを確認しようとすると、
- 固定ハンドル
- .NET ルート
- 根
- .NET ルート
そして、ツリーをこれ以上拡張することはできません。
ビュー RefTree を選択すると、さらに多くのものが表示されます。
- ルート 100%
- .NET ルート 100%
- ピンハンドル 70.6%
- LIB mscorlib!RuntimeType 46%
- LIB mscorlib!reflection.... 13.4% ...
- 静的変数 30.7%
- ns.ConfigurationSettings 59.5%
- ns.Leaks.ConfigurationSettings -33.3%
- ピンハンドル 70.6%
- .NET ルート 100%
いくつかのスナップショットで diff を実行しましたが、インクリメントする唯一のメソッド/グループは Pinned ハンドルであり、それらは mscorlib タイプのみを参照しています。
他の誰かがこの種の問題を抱えていましたか?
問題は、XMLSerializer を使用した Model から XML へのシリアル化にあるのではないかと思いますが、よくわかりません。
メモリリークを見つけようとする別の方法を知っている人はいますか?
ありがとう :)
c# - X509Store の store.Open および store.Certificates.Find メソッドによるパフォーマンスへの影響
ライブラリにこのコードがあり、新しいリクエストが作成されるたびにこのメソッドが呼び出されます。したがって、基本的には1秒あたりのリクエスト数が1000で、1000回呼び出されます。PerfView ツールを使用していたとき、CPU の 35% がこの方法で使用されていることに気付きました。最大の原因は、store.Open および store.Certificates.Find メソッドです。
他の誰かが自分のコードで同様の問題を発見しました。また、これによるパフォーマンスへの影響を解決するために何をしたかを共有できる場合。
perfview - PerfView: GC Heap Net Mem Stats を開くと時間がかかりすぎます
私は比較的小さな etl ファイル (まとめて 100MB) を持っていますが、GC Heap Net Mem Stacks をクリックして長い時間 (10 分以上) 待っても、「灰色の状態」から戻ることはありません。
これが「正常」であるかどうかのアイデアはありますか?
.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 ? それらの意味は何ですか?