SummaryReporter.java
net.minecraft.util.profiling.jfr.SummaryReporter
信息
- 全限定名:net.minecraft.util.profiling.jfr.SummaryReporter
- 类型:public class
- 包:net.minecraft.util.profiling.jfr
- 源码路径:src/main/java/net/minecraft/util/profiling/jfr/SummaryReporter.java
- 起始行号:L15
- 职责:
TODO
字段/常量
-
LOGGER- 类型:
Logger - 修饰符:
private static final - 源码定位:
L16 - 说明:
TODO
- 类型:
-
onDeregistration- 类型:
Runnable - 修饰符:
private final - 源码定位:
L17 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
protected SummaryReporter(Runnable onDeregistration) @ L19
- 构造器名:SummaryReporter
- 源码定位:L19
- 修饰符:protected
参数:
- onDeregistration: Runnable
说明:
TODO
方法
下面的方法块按源码顺序生成。
public void recordingStopped(Path result) @ L23
- 方法名:recordingStopped
- 源码定位:L23
- 返回类型:void
- 修饰符:public
参数:
- result: Path
说明:
TODO
private static void infoWithFallback(Supplier<String> message) @ L47
- 方法名:infoWithFallback
- 源码定位:L47
- 返回类型:void
- 修饰符:private static
参数:
- message: Supplier
说明:
TODO
private static void warnWithFallback(Supplier<String> message, Throwable t) @ L55
- 方法名:warnWithFallback
- 源码定位:L55
- 返回类型:void
- 修饰符:private static
参数:
- message: Supplier
- t: Throwable
说明:
TODO
代码
public class SummaryReporter {
private static final Logger LOGGER = LogUtils.getLogger();
private final Runnable onDeregistration;
protected SummaryReporter(Runnable onDeregistration) {
this.onDeregistration = onDeregistration;
}
public void recordingStopped(@Nullable Path result) {
if (result != null) {
this.onDeregistration.run();
infoWithFallback(() -> "Dumped flight recorder profiling to " + result);
JfrStatsResult statsResult;
try {
statsResult = JfrStatsParser.parse(result);
} catch (Throwable var5) {
warnWithFallback(() -> "Failed to parse JFR recording", var5);
return;
}
try {
infoWithFallback(statsResult::asJson);
Path jsonReport = result.resolveSibling("jfr-report-" + StringUtils.substringBefore(result.getFileName().toString(), ".jfr") + ".json");
Files.writeString(jsonReport, statsResult.asJson(), StandardOpenOption.CREATE);
infoWithFallback(() -> "Dumped recording summary to " + jsonReport);
} catch (Throwable var4) {
warnWithFallback(() -> "Failed to output JFR report", var4);
}
}
}
private static void infoWithFallback(Supplier<String> message) {
if (LogUtils.isLoggerActive()) {
LOGGER.info(message.get());
} else {
Bootstrap.realStdoutPrintln(message.get());
}
}
private static void warnWithFallback(Supplier<String> message, Throwable t) {
if (LogUtils.isLoggerActive()) {
LOGGER.warn(message.get(), t);
} else {
Bootstrap.realStdoutPrintln(message.get());
t.printStackTrace(Bootstrap.STDOUT);
}
}
}引用的其他类
-
- 引用位置:
方法调用 - 关联成员:
Bootstrap.realStdoutPrintln()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
JfrStatsParser.parse()
- 引用位置: