我有一个文本文件~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