I need to explain why my application is performing poorly at a remote location. It is going to be inconvenient for me to install a profiler. I suspect that the machine is configured poorly but I need some simple way to show that a standard app suffers on their machine, thus absolving my application and shifting the focus to their system administrators.
Ideally, I would like to suggest they install a simple Java app that tests the performance of the host environment. If it could return some spec for CPU, disk, network, etc, they would be perfect.
I expected to find such a thing on the web, but I’ve been unsuccessful so far in my search.
As far as a “simple Java app”, I previously did something similar. My efforts were focused on the profiling of a Java VM (virtual machine – the “JVM”), not testing the performance of a specific Java application. The focus was on testing the capabilities of the hosting operating system – exercising:
The solutions I looked at for this included:
While somewhat dated (2004), SciMark does still appear to be quite effective.
Each test run takes about 30 seconds to execute.
Unlike SciMark, SPECjvm2008 takes much longer to fully execute the suite – taking just over 2 hours.
For testing the network, I’d use something like iperf, available for both Linux/Windows/etc.
For testing disk performance, there is an entire science behind this, and without knowing what operating system you’re using, I can’t give you a specific answer. However, if you’re using Linux, for example, I’d review this.