了解Jprofiler中的调用树视图计时

时间:2017-02-08 06:40:12

标签: java jpa jdbc jprofiler

在jprofiler中,调用树视图中CPU视图和数据库(jdbc / JPA)的时间如何相互协调?我怎样才能看出瓶颈是在数据库调用还是在java代码中

  1. CPU的调用树部分显示的时间是查看整个请求的累计时间,包括JPA和JDBC调用所花费的时间,还是仅包含CPU,不包括IO时间。请求的总时间是我在CPU视图的调用树部分中看到的,还是数据库和CPU视图的调用树时序的总和

  2. 关于不同行的问题:我看到在像BigDecimal这样的java核心类中花了很多时间。 Calendar.getInstance的Double.value。他们从我的应用程序中调用了很多这些方法。此外,如果我在过滤器设置中的忽略类列表中添加这些类,则调用这些类的方法的总时间会减少。因此,我可以假设这些方法中报告的大量时间实际上是由Jprofiler引入的开销。

1 个答案:

答案 0 :(得分:1)

  

CPU的调用树部分显示的时间是否为累计时间   整个请求并包括JPA和JDBC调用所花费的时间

仅当您设置"线程状态" CPU顶部的选择器查看"所有时间"。默认情况下,它设置为" Runnable"并且不包括套接字等待数据库调用完成的时间。

  

我可以假设这些方法中报告的大量时间实际上是   Jprofiler引入的开销。

使用检测,算法代码的开销会非常高,特别是因为它减少了热点编译器消除方法调用的可能性。你要么必须调整过滤器只调整仪器"高级"课程或切换到"采样"为了获得真实的时间测量。