我有一個文本文件~6GB,我需要解析並稍後保存。通過'解析'我正在從文件中讀取一行(通常爲2000個字符),從行中創建一個Car對象,之後我堅持它。我正在使用生產者消費者模式來解析和持久化,並懷疑它是否有任何區別(出於性能原因)在一次提交中一次持續一個對象或1000(或任何其他數量)?現在,我需要花費2個多小時來堅持一切(300萬行),而且對我來說看起來太多時間了(或者我可能是錯的)。之前,我做任何設計變更我想知道是否有一個原因,這樣的設計是更好的(或不),如果是,應該是什麼車休眠性能問題,堅持一個一個還是大衆?
public void persistCar(Car car) throws Exception
{
try
{
carDAO.beginTransaction(); //get hibernate session...
//do all save here.
carDAO.commitTransaction(); // commit the session
}catch(Exception e)
{
carDAO.rollback();
e.printStackTrace();
}
finally
{
carDAO.close();
}
}
:
目前我在做這個。尺寸()?另外,會議的開/閉會被認爲是昂貴的嗎?
public void persistCars(List<Car> cars) throws Exception
{
try
{
carDAO.beginTransaction(); //get hibernate session...
for (Car car : cars)
//do all save here.
carDAO.commitTransaction(); // commit the session
}catch(Exception e)
{
carDAO.rollback();
e.printStackTrace();
}
finally
{
carDAO.close();
}
}
我會嘗試此代碼的性能,並回到這個答案。謝謝! – adhg 2012-04-23 23:40:53
配料比較好! – adhg 2012-05-05 20:48:45