2010-10-09 57 views
4

我使用jstack输出线程信息。并且有一个线程: “VM Thread”prio = 10 tid = 0x0878b400 nid = 0x760a runnablejava“VM线程”是做什么的?

这个线程用来做什么? 占用50%的CPU使用率和大部分CPU时间

+1

哪个虚拟机在什么环境下实现? – Esko 2010-10-09 07:18:10

回答

2

我认为这是垃圾回收线程。它做垃圾收集。

0

你怎么知道这个线程正在使用50%?可运行并不意味着它消耗CPU。

AFAIK这是用于内部java操作,可能涉及GC。

您正在使用哪个版本的java?我会检查你是否有最新版本的Java,看看这是否仍然发生。

我建议你使用内存配置文件来查看你正在创建的对象的数量,并查看是否可以减少对象数量以减少任何GC工作负载。