я бегу
top -H -b -n 1
в Linux с Java-приложением
Получаю результат с заголовками:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
% CPU я вижу для каждого thread
Настоящий ЦП означает, что он не принимает во внимание время, потраченное потоком на ожидание блокировок и т. д., так что это чисто время, потраченное потоком на ЦП.
Если вы ищете дополнительную информацию о доступе к процессу ввода-вывода и использовании процессора, возможно, вы можете посмотреть iotop. Приложение предоставляет информацию о процессе, такую как верхняя часть, но для информации ввода / вывода. Iotop использует информацию из файлов / proc, например для процесса 16528.
cat / proc / 16528 / io
rchar: 48752567
wchar: 549961789
syscr: 5967
syscw: 67138
read_bytes: 49020928
write_bytes: 549961728
cancelled_write_bytes: 0
Я знаю, что это можно назвать в режиме bash, например, top.
iotop -botqqq --iter = 3 >> / var / log / iotop
Вы можете посмотреть dstat тоже, но это как верхний, глобальный для системы, а не специфичный для процесса.
У вас нет информации о блокировке потока.
Если вы ищете только java, возможно, посмотрите jconsole оно использует ThreadMXBean getThreadCpuTime () функция.