我有大約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毫秒左右。這似乎是答案,但我不能接受評論作爲答案。你能發表這個答案嗎? –