この問題の解決に関するこのスタック オーバーフロー ページを読み、コマンド ライン オプション -XX:-UseGCOverheadLimit と "-Xmx" 引数を追加してみました。ただし、私のプログラムはまだメモリ不足エラーをスローしました。
このプログラムは、多数 (>40,000 キー) の単語を MultiKeyMap に保存し、十分なメモリを備えたサーバー上で実行されます。
エラーを回避する方法について何か提案はありますか?
この問題の解決に関するこのスタック オーバーフロー ページを読み、コマンド ライン オプション -XX:-UseGCOverheadLimit と "-Xmx" 引数を追加してみました。ただし、私のプログラムはまだメモリ不足エラーをスローしました。
このプログラムは、多数 (>40,000 キー) の単語を MultiKeyMap に保存し、十分なメモリを備えたサーバー上で実行されます。
エラーを回避する方法について何か提案はありますか?
「GCオーバーヘッド制限」はメモリリークに関連している可能性がありますが、そうである必要はありません。元の質問に基づいて、本当の問題が何であるかを言うのは難しいです。すべてのエソセリックフラグのない「通常の」コマンドライン構成と、すべてのデータを保持するためのXmxの適切な設定が必要です。詳細なgcロギングをアクティブにして、実際にオーバーヘッドを引き起こしているGCを理解し、GC戦略または世代サイズを変更してそれを調整する必要があります。
通常、オーバーヘッドエラーは、メモリに優しい構造を使用し、ソフト参照または弱参照を使用する場合に発生します。自分で使用する場合は、誤解されやすいので、その内容をよく理解しておいてください。