JPA mierzenie czasu operacji, dziwne wartosci

JPA mierzenie czasu operacji, dziwne wartosci
VA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 180
0

w swojej aplikacji testuje predkosc metod zapisu do bazy danych rekordow przez repozytorium JPA. Do testow uzywam bazy H2 lub Derby.
NIestety osiagam bardzo dziwne wyniki.

Kopiuj
    public BulkTestResult testBulkInsertScenario(Long volume, Integer repeat) {
        StopWatch sw = new StopWatch();
        BulkTestResult bulkTestResult = new BulkTestResult();
        bulkTestResult.setStartDate(Instant.now());
        bulkTestResult.setCountTest(volume);
        bulkTestResult.setTestRepeat(repeat);
        familyRepository.deleteAll();
       for(int i =0; i < repeat; i++) {
           List<ProjectEntity> projects = dataAnonymization.generateProjectEntityList(volume);
           runBulkTest(sw, bulkTestResult, projects, true);
       }
        bulkTestResult.setEndDate(Instant.now());
        return bulkTestResult;
    }

    private void runBulkTest(StopWatch sw, BulkTestResult bulkTestResult, List<ProjectEntity> projects, boolean resetAfter) {
        sw.reset();
        sw.start();
        familyRepository.saveAll(projects);
        sw.stop();
        bulkTestResult.addMsSpeedResult(sw.getTime());
        if (resetAfter) familyRepository.deleteAll();
        sw.reset();
    }

Test uruchamiany jest Dla 10k rekordow. i 10 powtorzen

Test1: W 1 petli 242ms, kolejne petle 60ms, 40ms, 24ms ....
Test2: : w przedziale 38-22ms
Test3 : okolo 24-22ms

Zastanawiam sie skad biora sie te roznice i jak temu zaradzic ? Czy ma to zwiazek z cachem w Hibernate ?

S9
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 3573
0
  1. Tak się nie testuje prędkości wykonania, tylko tak
  2. W nawiązaniu do 1 pkt, nie uwzględniasz warmupu JVM i JIT w ten sposób
Charles_Ray
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1912
0

Ad. cache Hibernate - kiedy jest czyszczony w Twojej aplikacji?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.