私はC#、フレームワーク4のアプリケーションを持っています。非常に基本的に、このアプリケーションは主にイベントに反応してオブジェクトを作成し、それらを解放し、データベース接続を作成して閉じます。
今、私たちはアプリケーションのプロセスが時々非常に奇妙な方法で成長するのを見てきました。2つの異なる動作があります:
- アプリケーションは、RAMが最大4 GBに達するまで成長しますが、通常は約500MBにとどまる必要があります。結果->クラッシュします!
- アプリケーションは1200MB(30分)までゆっくりと成長し、その後500 MB(1秒)まで急激に縮小します...そしてこのプロセスは時々繰り返されます。これは実際のガベージコレクターになることができますか?
ここで、アプリケーションに関する詳細情報を提供するために、ログファイルにアプリケーションのプロセスのサイズを追加したいと思います。ネイティブフレームワークを介して可能ですか?C#でオブジェクトのサイズを知ることは可能ですか?
NetMemoryProfiler4アプリケーションも見つけましたが、可能であれば埋め込みロギングを使用したいと思います。