java - HotSpot View 中 "java.lang.Thread.run"中的高自拍时间意味着什么?

标签 java performance jprofiler

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

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

enter image description here

最佳答案

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

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

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

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

关于java - HotSpot View 中 "java.lang.Thread.run"中的高自拍时间意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40211353/

相关文章:

c++ - 堆栈分配功能(性能)

c# - 如何在 C# 中解析文本文件并进行 io 绑定(bind)?

jprofiler - 如何分离 Jprofiler8 'jpenable' 远程代理

java - Ant和XML配置文件解析

java - Java 的哪些特性使其构建速度比同类 C++ 程序快得多?

java - 新闻ML : sample examples of NewsML

java - ISODateTimeFormat 格式化程序在高并发情况下性能好吗?

linux - 当我的 GUI 在 Windows 操作系统上时,如何在远程 Linux 服务器上使用 jprofiler 进行配置?

linux - 无法停止 Tomcat

java - GStreamer分割MP4文件