我已经使用args启动了一个Java应用程序:
"-agentpath:C:\Program Files\jprofiler7\bin\windows-x64\jprofilerti.dll=port=8849,id=134,nowait"
然后控制台显示:
JProfiler> Protocol version 37
JProfiler> Using JVMTI
JProfiler> JVMTI version 1.1 detected.
JProfiler> 64-bit library
JProfiler> Don't wait for frontend to connect.
JProfiler> Using config file C:\Users\user\.jprofiler7\config.xml (id: 134)
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> Using dynamic instrumentation
JProfiler> Time measurement: elapsed time
JProfiler> CPU profiling enabled
JProfiler> Hotspot compiler enabled
然后我可以通过JProfiler GUI连接。
但我需要通过另一个Java应用程序与JProfiler API进行连接。 我该怎么连接?通过任何VM参数?
我只知道也许我必须首先创建一个连接,但我不知道如何选择会话ID。
Connection connection = ConnectionFactory.createRemoteConnection("localhost", 8849, 30);
如果我运行代理应用程序然后首先通过JProfiler GUi连接,我可以通过我的Java应用程序获取cpu信息,包括然后运行我的JProfiler API应用程序。
Profiling data :
Hot spots:
Top 5 hot spots:
Hot spot 1: ProfilerTest.main(java.lang.String[ ]): 34 ms (100 %)
Backtraces:
ProfilerTest.main(java.lang.String[ ]): 34722 (0)
***: 34722 (0)
Cpu tree:
***: 34722 (0)
ProfilerTest.main(java.lang.String[ ]): 34722 (0)
java.util.Scanner.next(): 34722 (0)
但是如果我运行代理应用程序然后首先通过我的JProfiler API应用程序连接,我什么都得不到。
Profiling data :
Hot spots:
Top 5 hot spots:
Cpu tree:
***: 0 (0)
答案 0 :(得分:0)
",nowait",添加",config = [配置文件的路径],id = nnn"其中" [配置文件的路径]"是%USERPROFILE%.jprofiler8 \ config.xml和" nnn"是会话设置对话框中应用程序设置选项卡右上角的会话ID。