java.lang.OutOfMemoryError 的解決方法
执行输出xml文本操作时出现java.lang.OutOfMemoryError 问题,提供两种解决方案。。。。
第一种
如果用的是eclipse作为开发环境并在eclipse下对程序进行发布的直接修改快捷方式修改为:
D:\eclipse\eclipse.exe -vmargs -Xmx512M
OK 了。 :evil:
第二种
[u]java.lang.OutOfMemoryError [/u]的解決方法
看到這個訊息就是要加大記憶體空間啦,java 程式有 -xms 跟 -xmx 參數可以用,Tomcat 到了 5.0.21 之後有畫面可以設定。
就是最下面那三行,一般只要設定 Initial memory pool (初始值) 跟 Maximum memory pool (最大值) 就可以了。
但是解決Out Of Memory Error 問題之前,一定要先了解狀況發生的原因。
一般都是發生在開啟大型檔案或跟資料庫一次拿了太多的資料,造成 Out Of Memory Error 的狀況,這時就大概要計算一下資料量的最大值是多少,並且設定所需最小及最大的記憶體空間值。
另一種狀況平時比較難查覺。就是 Servlet 或 JSP 的 Container 突然同時上線人數爆增,也相對造成記憶體需求不足,所以也必須要計算出程式所需的資料量*同時上線人數,來設定記憶體的需求量。(如果要有最佳化的值,最好是配合 gc 做調校)
有一種說法是聽來的,實際上是不是如此還有待確認。
當 CPU 速度愈快,記憶體的最小需求量也就必需愈大。原因是 CPU 愈快,短時間內能處理的資料量也就愈大,所以在 java 做 GC 之前,可能已經記憶體已經消耗完了,所以 CPU 的速度也是記憶體初始需求量的重要因素之一。
目前這三項應該足以應付絕大部份 Out Of Memory Error 的狀況,其它造成 Out Of Memory Error 的狀況,等有遇到再來補充。
[img][/img][img][/img][img][/img][img][/img][img][/img][img][/img]
第一种实现了,所以第二种是转贴的。。