System.gc() の呼び出し: コードの問題の可能性を示すインジケーター
System.gc() を手動で呼び出すことが一般に嫌われるのはなぜですか?
理由注意:
-
制御不足: JVM によって使用される特定のガベージ コレクター実装を決定することはできません。それぞれの実装は System.gc() で異なる動作をする可能性があります。電話。完全な収集サイクルを実行することも、単に JVM のヒントとして機能することもあります。
-
未知の影響: 場合によっては、System.gc() は JVM によって無視されることもあります。
-
パフォーマンスの問題: ガベージ コレクションのためにワールドを停止すると、実装されている場合、特に高スループットの操作中に、パフォーマンスが低下する可能性があります。
-
コードが壊れている可能性があります: パフォーマンスや正確性に対する System.gc() への依存は、通常、コード内の根本的なアーキテクチャ上の欠陥を示しています。
例外ルール:
一般的には推奨されませんが、次のような特定のシナリオで System.gc() の使用を検討できる場合があります。
-
メモリ プロファイリング: システム.gc() は、ガベージ コレクターに未使用のメモリを強制的に再利用させることで、メモリ リークの特定に役立ちます。これは、開発中のデバッグ目的に役立ちます。
結論:
ほとんどの場合、JVM の自動ガベージ コレクション メカニズムに依存する方が良いでしょう。 System.gc() の手動呼び出しは、それ自体を解決するというよりも、主に、対処する必要がある潜在的なコードの問題を示すものとして、注意して行う必要があります。
以上が「System.gc()」を呼び出す必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。