本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看 活动链接
Debug 笔记 <如何使用visualvm配置应用程序启动>
提问
据我所知,您只能使用VisualVM来分析正在运行的应用程序。
有谁知道使用VisualVM剖析Java应用程序启动和启动的方法吗?
我相信必须有一种方法,否则它将是一个重大的疏忽。
希望我只是误读了文档。
回答一
您是否要使用-Xrunjdwp命令行选项来设置性能分析?如果是这样,该选项就具有一个suspend参数,
仅用于此目的:
如果要在加载主类之前立即挂起目标VM,则为True;否则为True。否则为假。
我自己的配置示例:
-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
我将它与YourKit探查器一起使用,但是我认为原理是相同的。
回答二
使用Eclipse启动器,并在main方法中的适当位置设置一个断点。
然后,以调试模式启动,在visualVM中启用分析,然后使用eclipse恢复。
那不会剖析类的加载和内容,但是对我来说已经足够了。
回答三
我发现Startup Profiler很有帮助:
用于VisualVM 1.3.6的Startup Profiler插件支持从本地Java 5+应用程序启动时对其进行性能分析。在分析短期运行的进程时,它也很有帮助。
回答四
两种常见的Java开发环境(NetBeans / Eclipse)都通过附加的VisualVM直接支持应用程序执行。
如果是Eclipse,则必须安装插件。如果是NetBeans,则支持已经集成了AFAIK。
即使没有源,您仍然可以通过两种环境运行JAR文件,因此启动与VisualVM连接的应用程序。
文章翻译自Stack Overflow :stackoverflow.com/questions/4…