我要解决的第一个问题是查看跨多个线程的方法的所有子调用的运行时间。但是我用一个小型应用程序复制了我的问题,其中我有一个线程执行一个主要按预期等待的方法。
如您所见,我对 pool-1-thread-2 执行方法“com.sum.$Proxy10.uploadWaiting()”特别感兴趣,所以我确定该方法在 getConnection( ) 下降到 Object.wait(long) 但是我想看看在 com.sum.$Proxy10.uploadWaiting() 中的 getConnection() 中花费的 WALL TIME 的确切百分比是多少。我去“方法列表”->我的方法->合并的被调用者
如您所见,getConnection() 仅占我方法总时间的 1%。而且我已经将我的采样配置为对所有方法进行挂壁时间。正如您在屏幕截图中看到的那样,这些都标记为 [Wall Time]。我正在使用 Yourkit 2015 build 15052。
问题:为什么 getConnection() 不显示 90% 之类的东西?它仍然只计算 CPU 时间而不计算 Wall Time 吗?