2010-10-09 97 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工作負載。