私はしばらくの間、私を悩ませている問題を回避しようとしています。一言で言えば、リソースホギングアプリケーションのために最大限のヒープスペースを割り当てるべきベースはどれですか?また、タイが大きすぎるために欠点がありますか?JVM用に巨大なヒープスペースを正しく割り当てる方法
巨大な医療データを視覚化するためにアプリケーションを使用しています。イメージングボリュームをいくつか並べて開くと、最大数ギガバイトのメモリを消費する可能性があります。流暢なワークフローには、表示するデータをキャッシュすることが不可欠です。このソフトウェアはWindowsワークステーションでサポートされており、ヒープサイズを割り当ててメインアプリケーションを起動するブートローダで起動します。メインアプリケーションが必要とする実際のメモリは、表示されるデータに正比例し、データを読み込む必要があり、最終的には時間がかかりすぎるため、ブートローダでは判別できません。
したがって、起動時に十分なメモリが確保されるように、現在の設計では、ワークステーションの最大物理メモリに基づいてxmxを大きく設定します。しかし、これには何か欠点がありますか?私はネイティブプロセスが余分なヒープスペースを掘り下げて実行時にメモリエラーを引き起こす可能性があることを(2008年の記事から)読んだことがあります。ヒープスペースを割り当てる前に、無料の仮想メモリまたはページングファイルサイズを調べるべきでしょうか?このような状況にどう対処しますか?
ああ、これは私のこれらのフォーラムへの最初の投稿です。あなたにすべてお会いして、穏やかになってよかった! :)
更新日:すべての答えのための
感謝。私は私の言葉を正しく置くかどうか分からないが、私の問題は、私はこのソフトウェアが実行されるハードウェアについての知識はないが、それにもかかわらず、可能な限り多くのヒープスペースを割り当てること。
利用可能な仮想メモリが十分にある場合は、物理メモリの70%のヒープを割り当てる方法がありました。
あなたのデータを別のredisシャードにキャッシュし、別のjvmにあなたのアプリケーションを配備する方がよい。巨大なヒープはお勧めしません。 – neohope
多少の関連性:http://stackoverflow.com/questions/39462735/how-to-make-jvm-use-the-max-all-remain-memory-of-a-server –