我們想內部化JConsole/JVisualVM的一些功能,並從正在運行的應用程序中收集有關cpu利用率和內存消耗的數據。原因是,安全限制使我們無法在生產系統上將jmx端口打開到外部。如何確定應用程序內的gc-cpu利用率?
大部分所需的數據都可以通過MXBeans進行監控,但是,用於垃圾收集的cputime仍然不見了。通過GarbageCollectorMXBean
監測gc時間並不有用,因爲它僅提供並行工作收集器的壁掛時間。
我認爲可以使用ThreadMXBean來確定所有gc線程的cputime。我看不到安全識別這些線程的方法。
有誰知道,JVisualVM如何計算這個數字?