I realize there are plenty of questions similar to this one but some of the answers are dated and I'm not sure there is something better available to Java developers now.
I am not trying to find a problem with an application. I need to show 'graphically' memory and cpu usage over time. I tried using the JVisualVM Profiler that comes with NetBeans but the application consists of 4 separate processes running simultaneously and communicating with each other.
I need to find the platform memory margin (worst case memory usage and average memory usage). Also the CPU Usage processor throughput margin (including % of time spent in idle task).
I've seen mention of tools that sound promising but are only available for Windows. I've seen code that looks like Java can give me the information I need by writing some code. I've seen a lot of good information out here but I'm still not sure the best way to gather platform performance metrics for my application.
So, at the risk of sounding like I haven't researched this enough, I have to ask because really quite the contrary. The more I research the more confused I get. I need to find the quickest and easiest way to gather this information and would be grateful for any suggestions on the way to approach this.
ADDITIONAL INFORMATION:
Most performance tools are geared toward helping one find memory leaks and cpu usage in an application. I am trying to find a tool that will assist me in finding three things while my application is running:
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)
Perhaps this is not a difficult task but I have no idea how to do this using VisualVM or any other tool. Must I find a way to log the data and process this information myself? If so, does anyone out there have experience in doing this who can give me some insight?
Thank you