我在采样模式下使用Netbeans Profiler在我们的代码中查找性能问题。有问题的应用程序是Tomcat服务器,我们的应用程序位于远程计算机上。但是我遇到了一个奇怪的情况:事件探查器显示了按顺序调用的方法的点击量不同。
名称TotalTime CPUTime Hits
r.k.g.b.h.Class1.method1(...)21,418毫秒(9.5%)19,950毫秒(9.6%) 547
r.k.g.b.Class2.method1_3(...)19,222毫秒(8.5%)19,222毫秒(9.2%) 549
r.k.l.e.Class3.method1_2(...)1,905毫秒(0.8%)437毫秒(0.2%)514
r.k.g.b.h.Class1.method1_1(...)286 ms(0.1%)286 ms(0.1%)295
代码大致如下:
Class1 {
method1(){
try{
Class1.method1_1(...);
Class3.method1_2 (...);
Class2.method1_3 (...)
} catch (...){...}
}
}
因此,我希望在没有异常发生时所有“命中”值都相等。或发生某些异常时,method1 == method1_1> = method1_2> = method1_3。据我所知,在捕获的运行期间没有异常(或者我会看到在那里记录调用)。
我想这是因为采样分辨率不够高。是这样吗可以改善吗?