JProfiler:关于使用工具查看CPU占用情况
Student.java
public class Student {}
Client.java
public class Client { public static void main(String[] args) {
while (true) {
try {
Thread.sleep(1000);
new Student(); // 创建对象
System.out.println("Working...");
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
在 Call Tree 中直接就100%了,比较费解这段代码这么占CPU呢?
查看了官方文档也没具体介绍这里显示的是什么,只是说CPU,而且这里有浅红色、深红色两种颜色,有用过JProfiler的知道为啥占用情况这么高吗?
回答:
JProfiler 提供不同的方法来记录访问树以优化性能和细节。线程或者线程组以及线程状况可以被所有的视图选择。所有的视图都可以聚集到方法、类、包或J2EE组件等不同层上。CPU视图部分包括四个部分:
访问树 Call Tree
显示一个积累的自顶向下的树,树中包含所有在JVM中已记录的访问队列。JDBC,JMS和JNDI服务请求都被注释在请求树中。请求树可以根据Servlet和JSP对URL的不同需要进行拆分。
热点 Hot Spots
显示消耗时间最多的方法的列表。对每个热点都能够显示回溯树。该热点可以按照方法请求,JDBC,JMS和JNDI服务请求以及按照URL请求来进行计算。
访问图 Call Graph
显示一个从已选方法、类、包或J2EE组件开始的访问队列的图。
方法统计 Method Statistis
显示一段时间内记录的方法的调用时间细节。
所以,你的100%表示的是:访问树 Call Tree,显示一个积累的自顶向下的树,树中包含所有在JVM中已记录的访问队列。JDBC,JMS和JNDI服务请求都被注释在请求树中。请求树可以根据Servlet和JSP对URL的不同需要进行拆分。
以上是 JProfiler:关于使用工具查看CPU占用情况 的全部内容, 来源链接: utcz.com/p/173161.html