在jprofiler中,调用树视图中CPU视图和数据库(jdbc / JPA)的时间如何相互协调?我怎样才能看出瓶颈是在数据库调用还是在java代码中
CPU的调用树部分显示的时间是查看整个请求的累计时间,包括JPA和JDBC调用所花费的时间,还是仅包含CPU,不包括IO时间。请求的总时间是我在CPU视图的调用树部分中看到的,还是数据库和CPU视图的调用树时序的总和
关于不同行的问题:我看到在像BigDecimal这样的java核心类中花了很多时间。 Calendar.getInstance的Double.value。他们从我的应用程序中调用了很多这些方法。此外,如果我在过滤器设置中的忽略类列表中添加这些类,则调用这些类的方法的总时间会减少。因此,我可以假设这些方法中报告的大量时间实际上是由Jprofiler引入的开销。
答案 0 :(得分:1)
CPU的调用树部分显示的时间是否为累计时间 整个请求并包括JPA和JDBC调用所花费的时间
仅当您设置"线程状态" CPU顶部的选择器查看"所有时间"。默认情况下,它设置为" Runnable"并且不包括套接字等待数据库调用完成的时间。
我可以假设这些方法中报告的大量时间实际上是 Jprofiler引入的开销。
使用检测,算法代码的开销会非常高,特别是因为它减少了热点编译器消除方法调用的可能性。你要么必须调整过滤器只调整仪器"高级"课程或切换到"采样"为了获得真实的时间测量。