Java测试方法性能

时间:2016-10-14 09:17:26

标签: java performance

目前我正在测试执行2个静态Java方法所需的时间。两者都是90%同义词。区别在于一种方法是使用接口与其他类进行通信。 第二种方法将类调用为给定参数。

有一个简单的例子:

System.out.println(callBackTest());
System.out.println(directCallTest());

两种方法都会生成新类。可怕的部分是第一个mehtod以ms为单位返回可用的持续时间而第二个没有。总是1毫秒。当我注释掉第一个调用时,秒调用返回一个可用的值。

当我在一个循环中运行它们并总结持续时间时,甚至更加明智。每个第一次调用返回一个可用值,但其他只返回1 ms。

for (int i = 0; i < 20; i++) {
        testo t = new testo();
        duration += t.callBackTest();
        System.out.println(duration);
    }
    System.out
            .println("CallBackTest. Took " + (duration / amountTest) + " in average for " + amountTest + " Tests");
    duration = 0;

    for (int i = 0; i < 20; i++) {
        testo t = new testo();
         duration += t.directCallTest();

        System.out.println(duration);
    }
    System.out.println("DirectTest. Took " + (duration / amountTest) + " in average for " + amountTest + " Tests");

总结这个循环: 1. [method1] call = ~1300ms 2. [method1] call = ~1301ms 3. [method1] call = ~1302ms 4. [method1] call = ~1303ms ...

  1. [method2] call = ~1ms
  2. [method2] call = ~2ms
  3. [method2] call = ~3ms
  4. [method2] call = ~4ms ...
  5. 顺便说一下。使用Spring Tool Stuite。

    我非常困惑。任何人都快速了解?

0 个答案:

没有答案