gpt4 book ai didi

来自命令行的 Java Flight Recorder (JFR) : [jfr] [ERROR] [1014. 291] 关闭时无法删除存储库

转载 作者:行者123 更新时间:2023-11-30 01:46:35 27 4
gpt4 key购买 nike

我正在学习有关 Java Flight Recorder 使用的类(class) java-flight-recorder-monitoring

我从示例编译了 java 代码(添加了 classimports 因为它没有编译它们):

import java.util.ArrayList;
import java.util.List;

class TestFlightRecorder {
public static void main(String[] args) {
List<Object> items = new ArrayList<>(1);
try {
while (true){
items.add(new Object());
}
} catch (OutOfMemoryError e){
System.out.println(e.getMessage());
}
assert items.size() > 0;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
System.out.println(e.getMessage());
}
}
}

然后我按照类(class)运行:

C:\Program Files\Java\jdk1.8.0_191\bin>java -XX:+UnlockCommercialFeatures -XX:+F lightRecorder -XX:StartFlightRecording=duration=200s,filename=c:\am\out\flight.j fr -cp c:\am\out TestFlightRecorder

紧接着输出:

Started recording 1. The result will be written to:

C:\AM\out\flight.jfr

java的Windows任务管理器中的内存使用量上升,然后在超过200秒后:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at TestFlightRecorder.main(TestFlightRecorder.java:12) [jfr][ERROR][1014.291] Repository could not be removed at shutdown

生成的 flight.jfr 大小为 0 字节。 (当我使用简单的 hello world java 类执行相同的命令时,创建的 Flight.jfr 大小为 125Kb,其中包含“空”信息 - 我猜这是因为应用程序运行得如此之快,飞行记录尚未开始 - 而这个问题不是关于空虚)。

此类错误的网络搜索没有结果。为什么会出错,我是否做错了什么来进行录音?

最佳答案

当应用程序结束时,Java Flight Recorder 将转储写入 Java 关闭 Hook 中。如果没有足够的内存来生成转储,它将失败。

发生该错误的原因是,当关闭 Hook 线程尝试删除该文件时,该文件仍由 JVM 保留。

关于来自命令行的 Java Flight Recorder (JFR) : [jfr] [ERROR] [1014. 291] 关闭时无法删除存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57712611/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com