JVMを固定ヒープサイズで実行する必要がある理由(JVMをあまり多くチェックしなかったが、そのようにしないものは見たことがありません)を誰かが説明できますか?単純な連続したヒープに実装する方が簡単ですが、Sun JVMは10年以上前のものなので、これを改善する時間があったと思います。
起動時にプログラムの最大メモリサイズを定義する必要があるのは1960年代のことのように思え、OS仮想メモリ管理との悪い相互作用があります(GCはスワップアウトされたデータを取得し、Javaプロセスのメモリ量を判断できません)実際に OS側から使用して、無駄なVM空間の膨大な量は、(私が知っている、あなたは...あなたの空想の48ビットマシン上で気にしません))。また、JVM内に小さなオペレーティングシステム(EEアプリケーションサーバー、OSGi)を構築しようとするさまざまな悲しい試みは、この状況で少なくとも部分的に責任があると思います。システム上で複数のJavaプロセスを実行すると、ピーク時に使用する必要があるメモリをそれぞれに割り当てます。
驚くべきことに、Googleは私が期待するような怒りの嵐を降ろしませんでしたが、固定ヒープサイズを見つけて事実を受け入れるだけの何百万という人々に埋もれてしまったのかもしれません。