非常に長い間クエリを実行するサービスがあり、そのメモリ割り当てを「合理化」または効率化したいと考えています。
ほとんどの場合、ただ座って待機し、大量のメモリを割り当てる必要がある要求を受け取り、それ に対して何らかの処理を行います。タイプや構造は事前にわかりません。リクエストによって異なり、大きく異なります。
現在、大きな処理要求は、数秒かかる可能性があるいくつかのおしゃべり (他の要求) によって妨げられています。
私がやりたいのは、おしゃべり (小さな要求) が始まったときに、.Net Framework に言うことです: Windows に移動し、自分で数 GB のメモリを取得して、私が尋ねたときにより速く利用できるようにします。 「完了しました。.Net に伝えてください。現在使用していないものはすべて、しばらくの間は必要ないので、返してください。」
話している間にプロファイリングを開始しています...しかし、それは改善できる問題の一部であると思われます.
私は状況を明らかにしようとします。
私はサーバー上にあるサービスを持っていますが、95% の時間は何もしません。ときどき、主にメモリを集中的に使用する処理を実行するように要求されます。
私はそれがすべて起こることを少し前に知っています。
私がやりたいのは、GCに「すぐに多くのメモリが必要になるだろう」と後で「しばらくの間特別なものは必要ないだろう」というヒントだけです
わかった。私はプロファイリングを行い、これについては気にしないことにしました。割り当てにはある程度の時間がかかりますが (数ミリ秒から数十ミリ秒)、残りの処理と比べると重要ではありません...
リリース部分に関しては、最終的に発生し、サーバーの残りの部分に実際に干渉することはありません...