Aprof
by Devexperts
Aprof is a Java memory allocation profiler with very low performance impact on the profiled application that can be used (and is used) on highly-loaded server-side applications in production environment. It acts as an agent which transforms class bytecode by inserting counter increments wherever memory allocation is done and tracks a precise size of allocated objects in bytes. It also keeps limited information about allocation context to aid to finding the memory allocation bottlenecks. See short Tutorial for basic usage and examples.
Download the latest version of aprof distribution, unzip, copy "aprof.jar" to your application's directory and run application with an additional JVM argument:
No Format |
---|
java -javaagent:aprof.jar <your-application-options> |
Run it and watch for "aprof.txt" file that will be updated every minute with memory allocation details reports for your application for the last minute (with totals in separate section at the end) in a human-readable form. There will be somewhat slower start-up time due to transformation and a lot of extra memory allocations by aprof itself, so wait a couple of minutes until your application and aprof warm up (aprof allocates all the memory it needs to operate during start-up and warm-up), start your application's workload, wait some more time until your application warms up under load, and use reports in "aprof.txt" to find memory allocation bottlenecks in your application under load.
To get help on configuration parameters, run
No Format |
---|
java -jar aprof.jar |
Do not rename agent file "aprof.jar", because it is configured by its name in manifest and will not work when renamed.
Open Source (help us improve it!see, learn, improve)
In current version (build 28):
...
Aprof gets accurate profiling results and finds locations of object allocations at the same time being garbage-free and having very low performance impact. Learn how to use it.
Page Tree | ||
---|---|---|
|