What can you guys recommend to use with Java?
Only requirement is it should be open source, or has not too expensive academic licence .
The VisualVM which comes with jdk6 has a basic profiler inside it. VisualVM is provided with the jdk, so if you have the jdk6 installed, you likely have it installed as well.
you've got a list here (listing them below, in-case link gets broken)
- JMemProf
- JMP
- DrMem
- JTreeProfiler
- NetBeans Profiler
- JAMon API
- JBoss Profiler
- MessAdmin
- InfraRED
- TomcatProbe
- Java Interactive Profiler (JIP)
- Profiler4j
- Stopwatch
- JMeasurement
- DJProf
- TIJmp
- Allmon
- Appspy
- EurekaJ
- japex
- OKTECH Profiler
- Perf4j
Ah. Netbeans Profiler , developer.com's "Product of the Year" winner, in 2009.
Java has a basic built in profiler called HProf . I find it useful to compare the results it provides with results from more fully features profilers.
The open-source tool jvmtop does include a basic console profiler. Example output:
JvmTop 0.7.0 alpha - 15:16:34, amd64, 8 cpus, Linux 2.6.32-27, load avg 0.41
http://code.google.com/p/jvmtop
Profiling PID 24015: org.apache.catalina.startup.Bootstrap
36.16% ( 57.57s) hudson.model.AbstractBuild.calcChangeSet()
30.36% ( 48.33s) hudson.scm.SubversionChangeLogParser.parse()
7.14% ( 11.37s) org.kohsuke.stapler.jelly.JellyClassTearOff.parseScript()
6.25% ( 9.95s) net.sf.json.JSONObject.write()
3.13% ( 4.98s) ....kohsuke.stapler.jelly.CustomTagLibrary.loadJellyScri()
Here's an article about Java Application Profiling using TPTP and here's a tutorial Profiling J2SE 5.0 based applications using Eclipse TPTP .
If you are looking for a no-frills, easy to use open source profiler, you may want to take a look at Jip ( Java Interactive Profiler ). It's published under a BSD license. I found it to be quite useful for small programs. At least, the results it gives are way more easy to understand than hprofs output.
Java Mission Control , it's free to use for development and it integrates with Eclipse. It has very low overhead (<1%) since it piggybacks on the data the JVM is gathering anyway.
It's very easy to use and it can also give a lot information you typically won't find in other profiling tools, eg latency profiling, online memory inspection, detailed gc statistics
这很快,很脏,而且非常有效:只需要几次线程转储,或暂停程序几次,然后查看堆栈跟踪。
JVM Monitor is a Java profiler integrated with Eclipse to monitor CPU, threads and memory usage of Java applications.
If further deep analysis is needed, you may use other tools (eg TPTP , Memory Analyzer ) as a next step.
Consider cutting-edge https://github.com/jvm-profiling-tools/async-profiler
This project is a low overhead sampling profiler for Java that does not suffer from Safepoint bias problem . It features HotSpot-specific APIs to collect stack traces and to track memory allocations. The profiler works with OpenJDK, Oracle JDK and other Java runtimes based on HotSpot JVM.
It's also built-in into IntelliJ IDEA Ultimate: https://www.jetbrains.com/help/idea/cpu-profiler.html .
There is also similar https://github.com/jvm-profiling-tools/honest-profiler .
The comparison between async-profiler
and honest-profiler
: https://github.com/jvm-profiling-tools/async-profiler/issues/77
Netbeans IDE includes a free profiler.
Also, if I remember correctly, the academic license for JProfiler is (relatively) inexpensive.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.