我们有一个需要大量堆空间的Java程序-我们使用(除其他命令行参数外)参数-Xmx1500m启动它,指定最大堆空间为1500 MB。在刚刚重新启动的Windows XP计算机上启动此程序时,它将可以正常启动和运行。但是,如果该程序已经运行了多次,计算机已经运行了一段时间等等,当尝试启动时,我会收到以下错误消息:
所以第一个问题是,如何确认我的怀疑? 第二个问题是,如果我的怀疑是正确的,是否有任何工具可以解决这个问题?我已经搜索了很多,但是我没有找到任何有用的东西,除了定期重新启动机器之外。
PS-更改操作系统目前也不是可行的选择。
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的可用内存。我已经查看了与内部碎片相关的此问题。
所以第一个问题是,如何确认我的怀疑? 第二个问题是,如果我的怀疑是正确的,是否有任何工具可以解决这个问题?我已经搜索了很多,但是我没有找到任何有用的东西,除了定期重新启动机器之外。
PS-更改操作系统目前也不是可行的选择。