ActiveXコントロールを使用するWindowsフォームアプリケーションがあり、.NETパフォーマンスオブジェクトの「.NET CLRメモリ」に私たちのアプリケーションがアイドル状態で座っていても、使用中の「同期ブロック」の数は(メモリ使用量の増加に伴って)絶えず増加しています。「同期ブロック」とはカウントを減らすためのヒント
シンクブロックカウント状態のビルトイン説明:
このカウンタは、使用中のシンクブロックの現在の数を表示します。同期ブロックは、同期情報を格納するために割り当てられたオブジェクトごとのデータ構造です。同期ブロックは、管理オブジェクトへの弱い参照を保持し、ガベージコレクタによってスキャンする必要があります。同期ブロックは、同期情報の格納に限定されず、COM相互運用メタデータを格納することもできます。このカウンタは、同期プリミティブを頻繁に使用することによるパフォーマンスの問題を示すために設計されています。
別のアプリケーションに切り替えると、同期ブロック数がリセットされるようです。正確にこれらが作成される原因となり、これらの数を減らすためのヒントはありますか?
(ところで、本当に、そのタイプミスや配管冗談ならば、私はよく分からない。パフォーマンスカウンタのリストに「シンクブロックを」綴られる)あなたは、このようなlock
などのプリミティブロックを使用
これらのブロックをシンクブロックといいます。 –