強迫垃圾收集,獲得一個堆的對象快照。
做任何工作可能正在導到無意的對象引用保持。
強迫另一次垃圾收集並獲得第二次堆的對象快照。
比較這兩個快照,觀察從第一個快照到第二個快照哪些對象在數量上有所增加。因爲你在快照之前強迫垃圾收集,剩下的將是所有被應用程序引用的對象,比較兩個快照將準確的標識那些新創建的、保留在應用程序裏的對象。
根據你對應用程序的認識,決定兩個快照比較中,哪些對象正在無意的保持對象引用。
跟蹤前導引用,找到哪些對象正在引用這些無意的保持對象,直到你找到導致此問題的源對象
啓動虛擬機的時候,加上一個參數:-Xms800m -Xmx800m就好了
-Xms <size>
設置JVM初始化堆內存大小
-Xmx <size>
設置JVM最大的堆內存大小
如果是應用程序,則:java -Xms800m -Xmx800m 你的類名
如果是tomcat之類的web服務器,在這個服務器的啓動文件後面加上這個參數即可。
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at org.jaxen.expr.IdentitySet.contains(IdentitySet.java:73)
at org.jaxen.expr.DefaultStep.evaluate(DefaultStep.java:165)
at org.jaxen.expr.DefaultLocationPath.evaluate(DefaultLocationPath.java:
154)
at org.jaxen.expr.DefaultAbsoluteLocationPath.evaluate(DefaultAbsoluteLo
cationPath.java:117)
at org.jaxen.expr.DefaultXPathExpr.asList(DefaultXPathExpr.java:108)
at org.jaxen.BaseXPath.selectNodesForContext(BaseXPath.java:705)
at org.jaxen.BaseXPath.selectNodes(BaseXPath.java:227)
at org.dom4j.xpath.DefaultXPath.selectNodes(DefaultXPath.java:132)
at org.dom4j.tree.AbstractNode.selectNodes(AbstractNode.java:166)
at com.sunland.jdata.Pm01XmlFactory.readSourceData(Pm01XmlFactory.java:1
20)
at com.sunland.jdata.Pm01XmlFactory.readSourceDataDir(Pm01XmlFactory.jav
a:95)
at com.sunland.operation.Pm01DbBean.done(Pm01DbBean.java:28)
at com.sunland.factory.Pm01Task.doCreate(Pm01Task.java:44)
at com.sunland.factory.Pm01Task.run(Pm01Task.java:31)
at com.sunland.jdata.MainStart.main(MainStart.java:69)
內存溢出 ava.lang.OutOfMemoryError: Java heap space
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.