我看到有一堆“java profiler推荐”问题已在这里得到解答。不过,我的情况略显具体。
我需要描述一个拥有数千名实时用户的生产系统。所以我需要一个轻量级的分析器,它不会让系统减速到停止。
我在Linux上的JDK 1.6.0_20上运行Tomcat 6.0.29。
我的偏好是免费的开源分析器。但如果有一个明显是最佳选择的商业选择,那么那也没关系。
答案 0 :(得分:3)
在JDK中查看jvisualvm。
它可以在本地和整个网络上连接到正在运行的进程(但功能减少),并允许您对CPU和内存进行性能分析。看看http://blip.tv/file/1582849
答案 1 :(得分:1)
我更喜欢Java Flight Recorder。它几乎不会导致性能开销,并且具有良好的GUI。添加JVM参数
-XX:+UnlockCommercialFeatures -XX:+FlightRecorder
-XX:StartFlightRecording=name=test,filename=test.jfr,dumponexit=true
并用JMC打开记录。
答案 2 :(得分:0)
在没有进入探查器战斗(你可以谷歌)的情况下,CPU采样通常被认为是计算量最小的分析方法之一。如果您要在生产中分析应用程序,这一点至关重要。
阅读以下SO帖子: - Which Java Profiling tool do you use and which tool you think is the best?
你甚至可以just use the JDK and the hprof tools,尽管基本的探查器可能会更好。
正如skafman所说,诀窍是限制要分析的类的数量。