Abnahme Gegeben: Methode in einem @Stateless
EJB, JTA Mysql Datenquelle und eine Liste von etwa 5000 Einheiten, die ich in einem Zyklus zu anhalten bin versucht:Persist allmählich Leistung
List<MyObj> objList = entityManager.createNamedQuery("Q1", MyObj.class).getResultList();
for(MyObj obj : objList) {
long start_time = Calendar.getInstance().getTimeInMillis();
entityManager.persist(obj);
long end_time = Calendar.getInstance().getTimeInMillis();
logger.info("Object saved in " + (end_time - start_time) + "ms");
}
entityManager.close();
Log allmählich nachlassende Leistung zeigt von 15ms
bis zu 180ms
Zeit pro Entität sparen. Ich glaube, MySQL-Server-Einstellungen sind weit über die Bedürfnisse dieser Aufgabe - es zeigt unbedeutende Zunahme der CPU-und E/A-Operationen. Flushing EntityManager
nach jeder Aktualisierung hat keine Auswirkungen.
Was könnte der Grund für eine solche Leistungsminderung sein? Bitte zeigen Sie mir in die richtige Richtung.