インタビュー中に、仮想の時間要件を満たすために、c# のコード ブロックを一貫した時間で実行できるようにする方法を考え出すように求められました。インタビュアーは、1 つの方法は、コード ブロックが実行される前にガベージ コレクターを呼び出して収集することであり、そのコード ブロック中に GC が再度実行される可能性を大幅に減らすことだと述べました。これは、医療機器の正確な時間ベースの測定に適用され、ガベージ コレクションがそれらの測定に影響を与える可能性があります。
それは私には理にかなっていますが、それを裏付ける情報は見つかりませんでした。私が確認した一般的なコンセンサスは、GC.Collect() を呼び出さないことであり、例外にはこのシナリオは含まれていませんでした。
GC.Collect() を実行すると、すぐに実行される可能性を本当に減らすことができますか? これは、.net フレームワークを使用してこれを行う正しいアプローチですか? GC.Collect() は他の CLR プログラムでも収集しますか、それとも現在のプロセスにのみ適用されますか?