当前位置: 首页 > 知识库问答 >
问题:

如何从IDEA JProfiler插件连接到无需等待即可启动的JVM?

郎雅昶
2023-03-14

我试图对JBoss进行如下分析:

  • 添加代理路径:C:\Progra~1\jprofiler8\bin\windows-x64\jprofilerti。dll到独立。bat。注意,没有指定nowait,因此VM将等待JProfiler GUI连接

问题是“快速附加”窗口看不到JBoss JVM,无论我做什么。

以下是JBoss标准输出,显示JProfiler已准备就绪:

Calling "C:\src\ss-master\middle\runtime\jboss-as-7.1.1.Final\bin\standalone.conf.bat"
===============================================================================

  JBoss Bootstrap Environment

  JBOSS_HOME: C:\src\ss-master\middle\runtime\jboss-as-7.1.1.Final

  JAVA: C:\tools\java\bin\java

  JAVA_OPTS: -XX:+TieredCompilation -agentpath:C:\Progra~1\jprofiler8\bin\windows-x64\jprofilerti.dll -Dprogram.name=standalone_jprofiler.bat -Xms256m -Xmx8192m -XX:NewRatio=6 -XX:
PermSize=128m -XX:MaxPermSize=256m -Xss512K -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.war
ning=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djboss.server.default.config=standalone.xml -Dorg.jboss.server.bootstrap.maxThreads=8 -agentlib:jdwp=transport=dt_socket,se
rver=y,suspend=n,address=5001

===============================================================================

JProfiler> Protocol version 41
JProfiler> Using JVMTI
JProfiler> JVMTI version 1.1 detected.
JProfiler> 64-bit library
JProfiler> Listening on port: 8849.
JProfiler> Instrumenting native methods.
JProfiler> Can retransform classes.
JProfiler> Can retransform any class.
JProfiler> Native library initialized
JProfiler> VM initialized
JProfiler> Waiting for a connection from the JProfiler GUI ...

以下是我尝试过的一些事情:

  • JProfiler UI中的“快速附加”也看不到JBoss VM。
  • 在启动选项中使用noatt,连接成功(即使来自IDEA)。
  • 如果没有noatt,我只能从JProfiler GUI中的预定义会话连接。在此之后,我也可以从IDEA连接。

最后一点最有趣。保存的会话有哪些其他信息使其能够检测“等待”的JProfiler代理?

以下是我的用例的约束:

  • 我想从IDEA启动分析,以便跳转到源代码将我带到IDEA。
  • 我想剖析创业期,所以我负担不起添加noetc

共有1个答案

傅献
2023-03-14

当分析代理在启动时等待连接时,连接机制不起作用,因为启用连接的jvmstat系统尚未加载。事实上,没有加载任何Java类,因此在那个阶段不需要Java代码。

要分析这样一个等待的VM,您需要一个远程分析会话。在JProfiler 8中,IDE集成不支持这一点。

这将在JProfiler 9.0(即将发布)中实现。附加对话框将有两种模式,列出所有本地运行的VM的本地模式和一个远程附加选项,您可以在其中输入主机名和端口。

但是,您也可以直接从IDEA分析JBoss运行配置。然后您不必修改启动脚本。

 类似资料:
  • 问题内容: 有时,我必须编写软件以与位于Cisco VPN中的特定服务器建立套接字。我只是像没有VPN一样编写软件(使用标准套接字库)。是时候运行该程序了,我使用计算机上安装的客户端软件手动连接到VPN,然后运行程序本身。 但是,需要编写软件以利用能够直接通过VPN进行通信而无需使用任何已安装客户端软件的专用套接字库。 这是一些Java代码,说明了我想要的功能: 是否可以在不安装任何客户端软件的情

  • 问题内容: 我正在使用python API将一些Selenium RC测试转换为Selenium WebDriver。在Selenium WebDriver中,我注意到这似乎要等待整个页面加载后才能继续。有没有一种方法可以不等待页面加载?我要请求的某些页面具有很多外部资源,这些资源可能需要很长时间才能加载。我宁愿等待DOM上的元素出现,也不愿等待所有内容加载。因此,我的某些测试在WebDriver

  • 问题内容: 我想在应用程序中连接到wifi网络。 码: 但是问题是我不知道。如何获取WiFi网络的SSID ? 问题答案: 如果您想获得所有可用的wifi: 如果要连接wifi ssid: 如果您想添加新的wifi设置,我已在下面编写了演示应用程序:

  • null null Jenkins通过curl命令触发作业(不在管道中),Jenkins kubernetes插件可以用我定义的图像触发作业。

  • 问题内容: 我想有一个不连接数据库就表现为mysql_real_escape_string的功能,因为有时我需要在没有数据库连接的情况下进行干式测试。mysql_escape_string已被弃用,因此是不可取的。我的一些发现: http://www.gamedev.net/community/forums/topic.asp?topic_id=448909 http://w3schools.in

  • 我正在使用python api将一些Selenium RC测试转换为Selenium WebDriver。在Selenium WebDriver中,我注意到似乎要等待整个页面加载才能继续。有没有办法不等待页面加载?我请求的一些页面有很多外部资源,可能需要很长时间才能加载。我宁愿等待DOM上的元素出现,也不愿等待所有内容加载。因此,我的一些测试在WebDriver中花费的时间似乎是原来的两倍。