目前我正在测试执行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 ...
顺便说一下。使用Spring Tool Stuite。
我非常困惑。任何人都快速了解?