问题标签 [jfr]
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.
java - 无法在 JRE 9 上运行 java 飞行记录器
我的 java home 设置为 JRE9
我正在尝试在 jar 上运行飞行记录器,但它在下面抛出错误
可能是因为我在运行时使用的 JRE 9 吗?
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 - 为什么延迟堆栈跟踪没有平均值?
当我使用 Java Mission Control 打开一个 .jfr 文件(Java Flight Record)时,我可以在 Thread -> Latencies -> Latency Stack Traces 选项卡中找到“Stack Trace”、“Longest”和“Count”。我关心平均值,但不是最长的。Java Latencies 选项卡中有平均值,但它包含与事件类型相关的所有延迟。其中一些对我来说毫无意义,例如:
以上是线程池的空闲时间,等待下一个任务。这个和所有其他混合的堆栈跟踪的平均值是没有意义的。我只关心业务堆栈跟踪的延迟。如何获得特定延迟堆栈跟踪的平均值。我可以将原始数据导出到csv,然后我可以自己计算。
java - 飞行记录仪是基于采样还是基于仪表的分析器?
尽管查看了飞行记录器文档,但我找不到此信息?我基本上是想记录我程序的所有执行情况,甚至不会因为采样而丢失一个小函数。
java - 如何为 JMX 和 Java 任务控制导入 lib?
我有两个问题是:
如何为 jmx 导入库(我无法导入)?
我们可以使用代码访问 Java Mission Control 吗?(就像我可以看到我的问题的可视化,但我想使用代码将它提取到我的 IDE 中),这可能吗?
java - 使用 Java Flight Recorder 和 Java Mission Control 监控锁
我想做的事
我有一个我正在尝试改进的 Java 程序。我怀疑代码中的同步块会损害性能,但我想在接触我的代码之前确保这是我的问题。
我是怎么做的
为了检查同步块是否确实存在问题,我使用 Flight Recorder 在测试服务器上记录了我的程序的执行,jfr
在我的桌面上下载了创建的文件并使用 Java Mission Control 打开它。但是Lock Instances
页面中Java Application
没有显示任何内容。我得到的唯一线索是结果视图中的一条消息,内容如下:
Java 阻止规则要求事件可从以下事件类型中获得:com.oracle.jdk.JavaMonitorEnter
因此,我假设必须与飞行记录器一起激活某种选项,但到目前为止我无法找到它。
我的问题
如何启用com.oracle.jdk.JavaMonitorEnter
Java Flight Recorder 记录类型中的事件?
或者我遗漏了其他东西,有更好的方法来确定在 Java 程序中对同步块进行了多少阻塞?
我的环境
我正在使用 Oracle JDK 版本 1.8.0_191。我在桌面上使用的 Java Mission Control 版本是 6.0.0。最后,我用来记录程序执行的命令如下:
我还应该补充一点,直接使用 Java Mission Control 连接到服务器不是一个选项(或者是吗?),因为我正在使用 ssh 反弹来实际连接到它......
java - 如何打开jfr部分文件
当我在我的应用程序中使用如下配置时,它总是会得到一些 xxx.jfr.part 文件。如何在 Java Flight Recorder 工具中打开 XXX.jfr.part 文件?如何更改配置以创建更少的 .part 文件?
我的应用程序中的配置:
-XX:+FlightRecorder
-XX:FlightRecorderOptions=defaultrecording=true,disk=true,maxsize=200m,maxage=3h,repository=/${MyApplicationPath}/log/jfr
无法打开的部分文件:
|MyApplicationPath
__|log
____|jfr
_______|2018_11_14_05_33_06_17296
___________|2018_11_14_05_33_07_17296_0.jfr.part 2,727KB
___________|2018_11_14_05_33_07_17296_0.
java - @TransitionFrom 和 @TransitionTo 应该如何使用
Java Flight Recorder API 包含两个注解TransitionFrom和TransitionTo,但文档对如何使用它们非常简单。
它们应该如何使用?我假设他们会在事件领域进行。它们应该是布尔字段还是线程字段?何时应将字段设置为哪些值?