问题标签 [jmc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-boot - 使用spring boot jmx时如何返回对象值
当数据库发生更改时,我正在使用 spring boot jmx 远程执行该方法。每件事都运行良好,当我使用原始数据类型作为返回值时,我可以在 Windows 中使用 jmc.exe 监控我的应用程序。现在我需要返回对象(不是原始数据类型,而是一个类)值作为我的方法的返回值。实际上,这个对象与我的班级在同一个包中。但是当我使用 jmx 远程运行该方法时,我得到了
我的代码如下
KeyValue
课程如下:
profiling - 检查 JFR 飞行记录时,Java Mission Control (JMC) 6.0 不显示热方法
在正在运行的应用程序上使用 Java Flight Recording 功能后,Java 的 JMC 可用于检查生成的 JFR 文件以显示热方法以及每个方法所花费的 CPU 时间百分比。这对于分析应用程序和识别瓶颈非常有用。
以下是以前在旧版本 JMC 中可能实现的示例:
在与 Java 10 捆绑的 JMC 6.0 中似乎缺少此屏幕。这是我在 Java 10 捆绑的 JMC 6.0 中看到的示例:
似乎有一个基本的方法调用计数,但没有列出百分比 CPU 时间。似乎没有添加缺失列的选项。
有没有办法显示热方法 %CPU 时间,或者这个功能是否从 JDK10 的 JMC 6.0 中删除?
java - 无法在 JMC for Java 应用程序和 Eclipse IDE 中打开飞行记录器
当我尝试运行飞行记录器时,加载需要很长时间然后崩溃,并在一段时间后抛出异常:
连接拒绝主机:17.226.xx.yyyy;嵌套异常是:
java.net.ConnectException:操作超时(连接超时) java.lang.RuntimeException:无法连接到 [1.8.0_181] Eclipse (2092)。Make sure the JVM is running and that you are using the correct protocol in the Service URL (service:jmx:rmi://127.0.0.1/stub/rO0ABXN9AAAAAQAlamF2YXgubWFuYWdlbWVudC5yZW1vdGUucm1pLlJNSVNlcnZlcnhyABdqYXZhLmxhbmcucmVmbGVjdC5Qcm94eeEn2iDMEEPLAgABTAABaHQAJUxqYXZhL2xhbmcvcmVmbGVjdC9JbnZvY2F0aW9uSGFuZGxlcjt4cHNyAC1qYXZhLnJtaS5zZXJ2ZXIuUmVtb3RlT2JqZWN0SW52b2NhdGlvbkhhbmRsZXIAAAAAAAAAAgIAAHhyABxqYXZhLnJtaS5zZXJ2ZXIuUmVtb3RlT2JqZWN002G0kQxhMx4DAAB4cHc4AAtVbmljYXN0UmVmMgAADTE3LjIyNi4yMC4yMjQAAMF44tzu6CRJNeORCVrBAAABZN4+pbCAAQB4).
我尝试运行不同版本的 jdks:从 java 7 到 java 8:
另外,卸载了eclipse并重新安装了STS。问题仍然存在。看起来问题是 jmc 中的某个地方无法连接到 eclipse 和/或 tomcat jvm。
任何解决过类似问题的人请帮助解决这个问题。谢谢。
更新:我可以通过使用命令终端记录航班
jcmd $pid JFR.start name=MyRecording 设置=默认持续时间=60s
jcmd $pid JFR.dump name=MyRecording 文件名=/tmp/test_TIMESTAMP.jfr
我仍然不知道为什么它不会从 gui 运行。
java - 使用 JCMD 的 Java 线程转储
我在 Ubuntu Linux 机器上使用 Java1.8。使用以下命令创建了一个线程转储:
将文件复制到本地MAC机器并双击在JMC中打开。它无法打开。如何打开它?
我试图在安装了内存分析器的 STS 中打开相同的文件,它不能识别 jfr 文件。
1)上述方法有什么问题?
2) 分析线程和堆转储的最佳工具是什么?
3) 堆或线程转储大小是否取决于 RAM 大小?我们有 64 GB ram 系统,分配 40 GB 给一个应用服务器。这有什么问题吗?
java - Java Flight Recorder 未报告所有 GC 事件
我们有性能构建,它在打开以下标志的情况下生成我们的应用程序:
自定义设置是通过 Flight Recorder UI 创建的,所有设置均已打开。我想与我的问题相关的重要部分如下:
飞行记录是在构建停止时生成的。但是,我不是 100% 确信它会记录所有内容。首先,在 Memory -> Garbage Collection 页面中只报告了少量 GC。我知道这一点,因为我们还打开了将 GC 写入文件的标志。GC 比飞行记录器中报告的要多得多。更重要的是,我担心内存分配结果没有记录准确的信息(就像 GC 事件一样)。在这种情况下,我们可能会花费大量精力来调整错误的区域。
我错过了这里的任何设置吗?
先感谢您!
java - 不支持 Java Flight Recorder 文件格式
我正在尝试使用 Java Flight Recorder (JFR) 分析我的 Java 代码的运行情况。为此,我使用终端命令:
java -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:StartFlightRecording=duration=500s,filename=myrecording.jfr -jar runnableJARFile.jar
这会运行我的程序并似乎创建了 .jfr 录制文件,但是当我尝试在 Java Mission Control 中打开它时,出现错误:
'Loading events from myrecording.jfr' has encountered a problem.
The file format of myrecording.jfr is not supported. Try with a more recent version of Mission Control.
但是,我已经检查并且我正在运行 JMC 6.0.0(似乎是最新版本)以及 JDK 11.0.0(似乎也是最新版本)。当我检查更新时,两者都显示为最新的。
任何想法如何让 JFR 文件在 JMC 中打开?
注意:我使用 Eclipse 作为 IDE,但似乎无法让飞行记录与程序同时开始;这就是我使用终端的原因。(运行 OS X El Capitan)
java - Eclipse 4.9.0 和 Oracle JDK 11 中的 Java Mission Control
我想通过 Eclipse 插件(https://marketplace.eclipse.org/content/java-mission-control)使用 Java Mission Control
当我想开始飞行记录时,我收到以下错误:
当我运行 Java Mission Control 的独立版本时,它工作正常,但是如果我可以从 Eclipse 调用 jmc,我的任务会更容易。
我怀疑这与 Oracle JDK 11 不再包含 Java Mission Control 的事实有关,因为它现在是一个独立的包。
(我使用的是 Ubuntu 18.04)
java - 如何为 JMX 和 Java 任务控制导入 lib?
我有两个问题是:
如何为 jmx 导入库(我无法导入)?
我们可以使用代码访问 Java Mission Control 吗?(就像我可以看到我的问题的可视化,但我想使用代码将它提取到我的 IDE 中),这可能吗?
java - 无法为 java 版本 jdk1.8.0_191.jdk 打开 jmc
我有一个mac系统。每当我尝试打开 java JMC 时,它都不会打开。我只能看到对话框的最大化、最小化和关闭按钮。我使用的jdk版本是jdk1.8.0_191.jdk。