Are there any Java profiling tools that integrate with CI servers like Jenkins?
I've no idea if such things exist, but what would be splendid would be some kind of test framework that yielded results like YourKit Profiler's snapshots. These would be invoked by the CI server, and the results stored along with the build. The result being that one could see a history of performance changes in code units, to aid more holistic performance investigations at a system integration level.
Profiling is the process of examining an application to locate memory or performance-related issues. When profiling a Java application, you can monitor the Java Virtual Machine (JVM) and obtain data about application performance, including method timing, object allocation and garbage collection.
“Profiling” is a dynamic method of analyzing the complexity of a program, such as CPU utilization or the frequency and duration of function calls. With profiling, you can locate exactly which parts of your application are consuming the most resources.
Sampling profilers work by periodically querying the JVM for all the running threads and getting the stack trace for each thread. It then determines what method each thread was executing when the sample was taken and compares the samples to determine how much time was spent in that method.
A Java Profiler is a tool that monitors Java bytecode constructs and operations at the JVM level. These code constructs and operations include object creation, iterative executions (including recursive calls), method executions, thread executions, and garbage collections.
Take a look at spf4j, I use it for continuous profiling (profiling always turned on).
It uses sampling for profiling and it can save the profile data to ssdump files, or it can generate html reports. (Spf4j has a UI to visualize the ssdump profile files)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With