您需要mpstat
在 Linux 中运行Runtime.exec()
并解析输出。我不知道Windows上是否有类似的东西。
$ mpstat -A 10
Linux 3.8.0-27-generic (peter-hex) 08/09/13 _x86_64_ (12 CPU)
21:04:39 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
21:04:49 all 0.27 0.00 0.18 0.00 0.00 0.00 0.00 0.00 99.55
21:04:49 0 0.40 0.00 0.20 0.00 0.00 0.00 0.00 0.00 99.40
21:04:49 1 0.80 0.00 0.50 0.00 0.00 0.00 0.00 0.00 98.70
21:04:49 2 0.50 0.00 0.40 0.00 0.00 0.00 0.00 0.00 99.10
21:04:49 3 0.80 0.00 0.50 0.00 0.00 0.00 0.00 0.00 98.70
21:04:49 4 0.10 0.00 0.20 0.00 0.00 0.00 0.00 0.00 99.70
21:04:49 5 0.70 0.00 0.40 0.00 0.00 0.00 0.00 0.00 98.90
21:04:49 6 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.90
21:04:49 7 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
21:04:49 8 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
21:04:49 9 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
21:04:49 10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
21:04:49 11 0.00 0.00 0.10 0.00 0.00 0.00 0.00 0.00 99.90
是否可以获得属于另一个 Java 进程的线程的 cpu 使用率?
是的,您可以使用ps -eLf
并查看系统上的所有线程。这为您提供了自启动以来使用的 CPU。(如果需要,您可以从中计算利用率)