问题标签 [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.

0 投票
1 回答
313 浏览

java - 无法在 JRE 9 上运行 java 飞行记录器

我的 java home 设置为 JRE9

我正在尝试在 jar 上运行飞行记录器,但它在下面抛出错误

可能是因为我在运行时使用的 JRE 9 吗?

0 投票
2 回答
420 浏览

java - Java Flight Recorder 未报告所有 GC 事件

我们有性能构建,它在打开以下标志的情况下生成我们的应用程序:

自定义设置是通过 Flight Recorder UI 创建的,所有设置均已打开。我想与我的问题相关的重要部分如下:

飞行记录是在构建停止时生成的。但是,我不是 100% 确信它会记录所有内容。首先,在 Memory -> Garbage Collection 页面中只报告了少量 GC。我知道这一点,因为我们还打开了将 GC 写入文件的标志。GC 比飞行记录器中报告的要多得多。更重要的是,我担心内存分配结果没有记录准确的信息(就像 GC 事件一样)。在这种情况下,我们可能会花费大量精力来调整错误的区域。

我错过了这里的任何设置吗?

先感谢您!

0 投票
1 回答
997 浏览

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)

0 投票
1 回答
104 浏览

java - 为什么延迟堆栈跟踪没有平均值?

当我使用 Java Mission Control 打开一个 .jfr 文件(Java Flight Record)时,我可以在 Thread -> Latencies -> Latency Stack Traces 选项卡中找到“Stack Trace”、“Longest”和“Count”。我关心平均值,但不是最长的。Java Latencies 选项卡中有平均值,但它包含与事件类型相关的所有延迟。其中一些对我来说毫无意义,例如:

以上是线程池的空闲时间,等待下一个任务。这个和所有其他混合的堆栈跟踪的平均值是没有意义的。我只关心业务堆栈跟踪的延迟。如何获得特定延迟堆栈跟踪的平均值。我可以将原始数据导出到csv,然后我可以自己计算。

0 投票
1 回答
387 浏览

java - 飞行记录仪是基于采样还是基于仪表的分析器?

尽管查看了飞行记录器文档,但我找不到此信息?我基本上是想记录我程序的所有执行情况,甚至不会因为采样而丢失一个小函数。

0 投票
1 回答
328 浏览

java - 如何为 JMX 和 Java 任务控制导入 lib?

我有两个问题是:

  1. 如何为 jmx 导入库(我无法导入)?

  2. 我们可以使用代码访问 Java Mission Control 吗?(就像我可以看到我的问题的可视化,但我想使用代码将它提取到我的 IDE 中),这可能吗?

0 投票
1 回答
155 浏览

java - JFR 线程争用中的计数和持续时间值到底是什么

我有一个运行 1m9s 的多线程应用程序(有 56 个并发线程)。争用的 JFR 屏幕截图如下所示。我不清楚的是:

  1. 计数字段表示什么?Lock 被获取的次数?
  2. 平均值表示什么?Duration (= count * average) 是如何大于应用程序的总执行时间的?

在此处输入图像描述

谢谢,

0 投票
1 回答
873 浏览

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.JavaMonitorEnterJava Flight Recorder 记录类型中的事件?
或者我遗漏了其他东西,有更好的方法来确定在 Java 程序中对同步块进行了多少阻塞?

我的环境

我正在使用 Oracle JDK 版本 1.8.0_191。我在桌面上使用的 Java Mission Control 版本是 6.0.0。最后,我用来记录程序执行的命令如下:

我还应该补充一点,直接使用 Java Mission Control 连接到服务器不是一个选项(或者是吗?),因为我正在使用 ssh 反弹来实际连接到它......

0 投票
1 回答
1289 浏览

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.

0 投票
1 回答
75 浏览

java - @TransitionFrom 和 @TransitionTo 应该如何使用

Java Flight Recorder API 包含两个注解TransitionFromTransitionTo,但文档对如何使用它们非常简单。

它们应该如何使用?我假设他们会在事件领域进行。它们应该是布尔字段还是线程字段?何时应将字段设置为哪些值?