「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > gc.collect()を呼び出すことはいつ受け入れられますか?

gc.collect()を呼び出すことはいつ受け入れられますか?

2025-03-23に投稿されました
ブラウズ:901

When is it Acceptable to Call GC.Collect()?

gc.collectを使用する時間

通常、 gc.collect()を直接呼び出すことはお勧めしませんが、特定の場合にはこれは妥当です。たとえば、サービスが循環的に実行され、タスクを実行した後に長い間アイドル状態になった場合、アイドルフェーズ中にゴミ収集を余儀なくされ、失敗しようとしているプロセスが占めるメモリを解放することを余儀なくされた場合、リソースの使用率を最適化することができます。

もう1つの許容可能な状況は、GUIアプリケーションで大きなフォームを閉じた後です。現時点では、すべてのUIコントロールがガベージコレクションを満たしており、フォームクロージングユーザーの間に短いパフォーマンスが低下しているため、GCコレクションを開始することは合理的です。

さらに、次の状況では、 gc.collect()

を呼び出す必要がある場合もあります。
  • 多数のオブジェクト(特にGen 1およびGen 2オブジェクト)がゴミ収集の準備ができており、パフォーマンスへの影響が最小限であるという確固たる証拠がある場合。
  • .NET 4.5から、 gclatencyMode.lowlatency または gclateanceMode.sustainedlowlatency を入力するとき、
  • .net 4.6を使用して、 gc.trystartnogcregion メソッドを使用してGCを一定期間無効にできます。この期間の前後に完全なGCを手動でトリガーすることをお勧めします。

これらの例外は、 gc.collect()を呼び出す際の注意の重要性を強調しています。この決定を下す前に、特定の環境と潜在的なパフォーマンスへの影響を評価することが重要です。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3