首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在HotSpot视图中,"java.lang.Thread.run“中的高自我时间意味着什么?

在HotSpot视图中,"java.lang.Thread.run“中的高自我时间意味着什么?
EN

Stack Overflow用户
提问于 2016-10-24 13:37:15
回答 2查看 735关注 0票数 0

下面是当我在采样模式下探测我的应用程序时,JProfiler的"CPU Views“的”热点“的屏幕截图。堆栈的顶部(占CPU使用率的76%)被"java.lang.Thread.run“占用。

我的问题是,这些线程是什么?这些线程是负责从第二个位置和下面(在绿色框中标记)显示其他热点的线程吗?或者这些线程正在执行一些后台任务,如垃圾收集和所有(相应的方法在热点列表中不可见)?

EN

回答 2

Stack Overflow用户

发布于 2016-10-24 13:51:29

大多数per服务器(Java和其他,包括JBoss)遵循“每个请求一个线程”的模型,即每个HTTP请求完全由一个线程处理。这个线程通常会花费大部分时间等待数据库请求之类的事情。web容器将根据需要创建新的线程。

这些线程不负责垃圾收集活动。JVM总是在专用线程中执行GC,即“GC线程”。每当GC线程处于活动状态时,它们就会与实际的“应用程序线程”竞争可用处理器,从而占用CPU时间。

为了回答你的问题,是的,所有与用户请求相对应的任务都会在这里考虑。换句话说,您的CPU花费了76%的时间来处理用户请求。

所有嵌套的方法调用时间都是在图像中显示的第一个热点中捕获的。

票数 1
EN

Stack Overflow用户

发布于 2019-04-08 18:31:23

这部分很可能负责JEE/JSE内部的东西,比如解包JAR。默认情况下,JProfile filters处于禁用状态。如果这种隐藏的RAM/CPU消耗占据了您的大部分资源,这意味着您的应用程序本身并没有真正消耗任何资源,或者只是没有做任何有意义的工作;-)

禁用筛选器(会话设置->筛选器设置)并重新启动分析。您将看到"Thread.run“背后发生了什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40211353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档