作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在 java 进程 (oracle jdk1.7_072) 上运行 jstack 并找到这些行
"C2 CompilerThread1" daemon prio=10 tid=0x00007f1a8415d000 nid=0x7d72 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" daemon prio=10 tid=0x00007f1a8415a000 nid=0x7d71 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
我知道 C2 是一个字节码编译器。我有三个问题:
nid
参数是什么意思?第一个nid=0x7d72
和java版的很像,是不是巧合?最佳答案
-XX:CICompilerCount=N
JVM 选项手动覆盖编译器线程数。nid
(Native ID) 是 OS 给的线程的唯一 ID。在 Linux 上,它是 gettid() 返回的数字.在您的情况下,TID = 0x7d72 = 32114。[0x0000000000000000]
这里与waiting on condition
无关。括号中打印的是与页面大小对齐的最后一个已知 Java 堆栈帧的堆栈指针。由于编译器线程不是真正的 Java 线程,它没有最后一个 Java SP,因此打印为零。关于java - java中的C2 CompilerThread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34516149/
我在 java 进程 (oracle jdk1.7_072) 上运行 jstack 并找到这些行 "C2 CompilerThread1" daemon prio=10 tid=0x00007f1a8
当尝试使用 SIGSEGV 编译特定方法(始终是相同的方法)时,我的 java 应用程序几乎一直崩溃: A fatal error has been detected by the Java Run
我们有一个带有 java IO 操作的服务器应用程序。运行应用程序时,我们观察到 CompilerThread0 和 CompilerThread1 的 CPU 使用率分别为 45% 和 41%。应用
为 tomcat 进程运行线程转储我只注意到以下内容: "CompilerThread0" daemon prio=10 tid=0x02b57400 nid=0xe0c waiting on con
我是一名优秀的程序员,十分优秀!