我有大约5000条记录要更新。我正在尝试测量操作的性能。它从大约100毫秒开始,但是在每千次更新之后,操作时间大约会增加80毫秒。为什么它放缓? JVM?休眠批处理操作性能
StatelessSession session = dao.getStatelessSession();
Transaction transaction = session.beginTransaction();
try {
List<Entity> list = dao.findAll();
int counter = 0;
for (Entity each : list) {
final Date startTime = Clock.getTime();
webService.execute(each);
session.update(each);
counter += 1;
final Date endTime = Clock.getTime();
LOGGER.info("***** " + getMilliSecondsDifference(startTime, endTime) + " for count: " + counter + "*****");
}
} catch (Exception e) {
LOGGER.info("***** Exception occured : ", e);
} finally {
transaction.commit();
session.close();
}
也是一个webService调用。是什么让你想到hibernate越来越慢?我建议你关闭werbservice执行部分并再次测量。 –
关闭web服务调用后,我尝试了15000个实体,他们都是4毫秒左右。这似乎是答案,但我不能接受评论作为答案。你能发表这个答案吗? –