因爲我在mi代碼中添加修改,所以我有一個hibernate的java堆空間問題。 從文本文件(2GB)程序負載信息休眠 - 搜索 - Java堆空間
BufferedReader input = new BufferedReader(new FileReader(file));
while (line.compareTo(EOF) != 0) {
//Load of infoObject, lots of parse information from the text file
//Read lines of text using: line = input.readLine();
getSession().save(infoObject);
counter++;
if (counter % 100 == 0) {
getSession().flush();
System.gc();
}
}
這項工作很好,現在情況下遍歷infoObject已經存在於我的數據庫,我需要更新的記錄,我用這個:
BufferedReader input = new BufferedReader(new FileReader(file));
while (line.compareTo(EOF) != 0) {
//Load of infoObject
iObject infoObject_tmp = new iObject();
infoObject_tmp.setNumAccount(numAccount);
infoObject_tmp.setCloseDate(new Date("02/24/2011"));
iObject infoObject_search = (iObject) getSession().load(iObject.class, infoObject_tmp);
if (infoObject_search !=null){
getSession().update(infoObject);
}else{
getSession().save(infoObject);
}
counter++;
if (counter % 100 == 0) {
getSession().flush();
System.gc();
}
}
FreeMemory:
- 註冊表1:750283136.
- 註冊表10000:648229608.
- 註冊表50000:411171048.
- 註冊表100000:Java堆空間。
我該如何解決java堆空間問題? 我知道問題是當我檢查iObject是否存在。
那麼,你的問題是什麼呢? – buruzaemon 2011-05-16 14:18:26
我該如何解決java堆空間問題? – JMira 2011-05-16 14:28:13