新启动的JVM的方法级别概要分析

时间:2014-01-19 03:12:20

标签: java jvm profiling yourkit

在我的应用程序中,在创建新资源时会启动新的JVM。我可以通过在yourkit中连接它来分析新启动的JVM。

现在我只能在准备就绪之后才能连接到JVM,之后我能够对它进行概要分析但我想在即将发布的时候对JVM方法进行概要分析,即在JVM的方法调用时进行概要分析。初始化。

有什么方法可以达到这个目的吗?

原因是,在初始化期间调用的某些方法会导致一些问题,并且在创建JVM并准备就绪后无法对其进行分析。

由于

2 个答案:

答案 0 :(得分:1)

如果在“JVM方法”下你的意思是在JVM初始化时调用的Java方法,那么你可以使用yourkit来实现它。你必须:

之后,您应该在连接后在YourKit UI中看到“早期”调用。

答案 1 :(得分:0)

您希望对启动应用程序的最初几秒内运行的代码执行远程调试会话。

尝试执行此操作时可能遇到的一个问题是,由于代码在开始时运行,因此在您有机会通过Eclipse附加调试器并设置断点之前,JVM可能会超过它。

解决方案是设置JVM /调试配置,以便将其设置为在启动时挂起。

设置远程调试的典型方法是在用于启动应用程序的代码中使用以下JVM参数,以便稍后调试器可以将自身附加到端口8000。

-Xrunjdwp:运输= dt_socket,服务器= Y,暂停= n时,地址= 8000

事实上,这是Eclipse在调试模式而非普通模式下启动应用程序时所执行的操作。它在启动应用程序时使用的JVM参数中添加了这一行。

注意suspend = n。如果将其设置为y,则JVM将在启动时挂起。它将等待调试器附加到它并在它继续之前释放它。

因此使用暂停标志,我们的问题就解决了。

来源: http://www.onkarjoshi.com/blog/224/how-to-suspend-vm-on-startup-when-remote-debugging-your-java-app/