WindowsXPでの最大ヒープメモリの制限その3
http://www5.airnet.ne.jp/sakuraba/java/diary/200403.html#20040320
これは非常に明確ですが、もう 1 つの方はやっかいです。
第 1 のリミットを通過した後に、実際にメモリアロケーションを行っているのですが、これを行っているのが Windows の場合は Win32 API の VirtualAlloc、Unix の場合は mmap で仮想メモリからアロケーションを行います。これらのメソッドでアロケーションができなかった場合に Error occurred during initialization of VM というエラーメッセージが出力されるのです。どこまでアロケーションできるかはメモリや OS に依存してしまうので、いちがいにここまでということができないのが悩ましいところです。私のメモリが 512 MB の Windows XP のマシンでは 1444m まで指定することができました。
環境に依存する見たいですね。
うちの768Mのマシンでは1.2Gぐらいまで指定できました。
追伸:解決しました。
Windowsの仮想メモリをカスタムにして最大を2000M程度割り当てると、
「-Dmx1500m」で起動できました。
どうやら、3Gの制限はひっかかってはいなかったようです。