有没有什么办法可以获得当前JVM中所有正在运行的Thread的列表(包括我的类未启动的Threads)?
是否也可以在列表中获取所有Thread的Thread和Class对象?
我希望能够通过代码完成此操作.
我必须运行jmap才能获取我的进程的堆转储.但jvm回来了:
Unable to open socket file: target process not responding or HotSpot VM not loaded
The -F option can be used when the target process is not responding
Run Code Online (Sandbox Code Playgroud)
所以我使用了-F:
./jmap -F -dump:format=b,file=heap.bin 10330
Attaching to process ID 10331, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.51-b03
Dumping heap to heap.bin ...
Run Code Online (Sandbox Code Playgroud)
-F 是可以进行堆转储吗?JDK是JRE的超集.JDK具有必要的工具,如javac java.exe调试器等+ JRE.但JRE有一个特定的JVM实现.
我的假设是java.exe或java应用程序启动器是解释器(如果我错了请纠正我).此外,JVM也进行了解释.
最后是JVM的解释器部分还是JDK工具的一部分?请解释.
我正在使用-XX:+PrintGCApplicationStoppedTime和-XX:+PrintGCApplicationConcurrentTime选项打开gc日志记录.
但发现只有PrintGCApplicationStoppedTime经过-XX:+PrintGCDetails命令打印的gc日志的4 0r 5打印后我的实际细节!
根据定义,PrintGCApplicationStoppedTime打印应用程序停止每个gc的时间.
但我不清楚为什么它打印如下所示的例子.
是因为
PrintGCApplicationStoppedTime 只需在每个安全点到达后打印
(要么)
日志文件将由不同的gc线程记录.我使用Concurrent扫描完整的GC和年轻一代的ParNew
我的应用是web应用程序.
O/p模式 - 我是这样的:
Application time: 0.3847031 seconds
Total time for which application threads were stopped: 0.3135419 seconds
Application time: 0.1520723 seconds
Total time for which application threads were stopped: 0.1993920 seconds
Application time: 0.1188219 seconds
Total time for which application threads were stopped: 0.1993920 seconds
Application time: 0.1188219 seconds
Total time for which application threads were stopped: 0.1993920 …Run Code Online (Sandbox Code Playgroud) 如何jps获得有关所有本地java流程的信息?它是否连接到某些本地服务器进程以获取信息?
如何做jinfo, jstat, jmap,并 jstack获得有关信息本地java处理?他们是否连接到某些本地服务器进程以获取信息?
是jstatd仅用于提供本地远程访问java的过程,但不是提供给当地的本地接入java流程?
我正在运行Ubuntu。我的问题来自/sf/answers/3896896461/。