Java 用hibernate测量德比的速度。奇异值

Java 用hibernate测量德比的速度。奇异值,java,hibernate,Java,Hibernate,我正在为Derby编写应用程序,用hibernate测量积垢的速度 这是我的职责: @Override public BulkTestResult testBulkInsertScenario(Long volume, Integer repeat) { StopWatch sw = new StopWatch(); BulkTestResult bulkTestResult = new BulkTestResult(); bulkTe

我正在为Derby编写应用程序,用hibernate测量积垢的速度

这是我的职责:

  @Override
    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);
        familyService.clear();
       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();
        familyService.save(projects);
        sw.stop();
        bulkTestResult.addMsSpeedResult(sw.getTime());
        if (resetAfter) familyService.clear();
        sw.reset();
    }
@覆盖
公共BulkTestResult testBulkInsertScenario(长卷,整数重复){
秒表sw=新秒表();
BulkTestResult BulkTestResult=新的BulkTestResult();
bulkTestResult.setStartDate(Instant.now());
bulkTestResult.setCountTest(体积);
bulkTestResult.setTestRepeat(重复);
familyService.clear();
for(int i=0;i
清除方法从数据库中删除所有记录

我遇到的问题是作为应用程序输出接收的值。
测试数据:1000条记录,10次重复

运行此测试几次收到的速度值示例:

  • 311116 87,(…)38
  • 32、27、30、(……)24
  • 22、19、18、(……)21
  • 19、18、18、(……)19
  • 为什么有这么多的差异,为什么第一次插入总是比较慢? 可能是硬件加速

    我找到了解决办法。 这个问题与优化有关。禁用JIT后,接收的值是正确的

    -Djava.compiler=NONE-Xint