我們有一個需要大量堆空間的java程序 - 我們用(其中包括命令行參數)參數-Xmx1500m啓動它,它指定最大堆空間1500 MB。在剛剛重新啓動的Windows XP盒子上啓動該程序時,它將啓動並運行,沒有問題。但是,如果該程序已運行了好幾次,計算機已經運行了一段時間,等等,當它試圖啓動我得到這個錯誤:查看/解決Windows XP內存碎片的工具
Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java virtual machine.
我懷疑Windows本身是由內存碎片的痛苦,但我不知道如何證實這種懷疑。在發生這種情況時,任務管理器和sysinternals procexp報告2000MB空閒內存。我曾看過this question related to internal fragmentation
所以第一個問題是,如何確認我的懷疑? 第二個問題是,如果我的懷疑是正確的,是否有人知道任何工具來解決這個問題?我環顧四周,但除了定期重啓機器,我還沒有發現任何有用的東西。
ps - 更改操作系統目前也不是可行的選擇。