绘制应用程序内存和 CPU 性能指标 Java Netbeans

Graphing application Memory and CPU performance metrics Java Netbeans

我知道有很多问题与此类似,但有些答案已过时,我不确定现在是否有更好的东西可供 Java 开发人员使用。

我并不是要查找应用程序的问题。我需要随时间显示 'graphically' 内存和 cpu 使用情况。我尝试使用 NetBeans 附带的 JVisualVM Profiler,但该应用程序同时包含 4 个独立的进程 运行 并相互通信。

我需要找到平台内存余量(最坏情况内存使用量和平均内存使用量)。还有 CPU 使用率处理器吞吐量余量(包括空闲任务花费的时间百分比)。

我看到有人提到听起来很有前途但仅适用于 Windows 的工具。我已经看到看起来像 Java 的代码可以通过编写一些代码为我提供我需要的信息。我在这里看到了很多有用的信息,但我仍然不确定为我的应用程序收集平台性能指标的最佳方法。

所以,冒着听起来我对此研究不够多的风险,我不得不问一下,因为事实恰恰相反。我研究得越多,我就越困惑。我需要找到最快和最简单的方法来收集这些信息,如果您能就如何处理这个问题提出任何建议,我将不胜感激。

附加信息:

大多数性能工具都旨在帮助人们发现应用程序中的内存泄漏和 cpu 使用情况。我正在尝试寻找一种工具,在我的申请 运行:

时帮助我找到三件事
1) Memoey Usge - platform memory margin:
   - Worst case memory usage
   - Average memory usage

2) CPU Usage - processor throughput margin
   - Usage = 100% - (%of time spent in idle task)
   - % time in idle task = (average period of background task with no load)*100% / (average period of background task with some load)

3) Availability - fraction of time the platform and application are available for use (related to mean time between failures)

也许这不是一项艰巨的任务,但我不知道如何使用 VisualVM 或任何其他工具来完成此任务。我必须找到一种方法来记录数据并自己处理这些信息吗?如果是这样,有没有人有这方面的经验可以给我一些见解?

谢谢

数据可通过 JMX 接口以编程方式获得,如 management beans