工作日志-20100720

来源:互联网 发布:魔兽世界有mac版吗 编辑:程序博客网 时间:2024/05/17 23:29

今天同事碰到一个OutOfMemory的问题,GUI启动后load几万条记录时抛出OutOfMemoryError。

 

开始怀疑是heap size设置不合理,在Eclipse.ini里面增加以下参数:

-vmargs
-XX:+UseParallelGC
-Xms512m
-Xmx1024m
-XX:NewRatio=40

 

问题依然存在,然后用jconsole来查看一下具体的jvm运行情况:

(小技巧:可以用jps来查看所有的java进程,然后用jstack pid来查看所有线程的运行状况)

在jconsole里发现如下现象:

PS Eden Space和PS Old Gen在查询的过程中急剧增大,迅速达到100%,造成OutOfMemoryError,仔细一看,才知道jvm里分配的Heap size最大才60多M,看来问题是Eclipse.ini里面的设置没有起作用。

 

从别处copy一个Eclipse.exe,重新运行,发现问题不存在,而且上面的设置也起作用了。

 

查了一下,发现原因是Eclipse RCP导出时有点问题:

需要在Launching的Launching Arguments里为win32特别设置一下,原来只是在All platforms里面设置了。

 

 

参考:

http://java.sun.com/docs/hotspot/gc5.0/gc_tuning_5.html

http://www.slideshare.net/gengmao/inside-the-jvm-memory-management-and-troubleshooting

 

原创粉丝点击