FileIOStat.java
net.minecraft.util.profiling.jfr.stats.FileIOStat
信息
- 全限定名:net.minecraft.util.profiling.jfr.stats.FileIOStat
- 类型:public record
- 包:net.minecraft.util.profiling.jfr.stats
- 源码路径:src/main/java/net/minecraft/util/profiling/jfr/stats/FileIOStat.java
- 起始行号:L10
- 职责:
TODO
字段/常量
- 无
内部类/嵌套类型
net.minecraft.util.profiling.jfr.stats.FileIOStat.Summary- 类型:
record - 修饰符:
public - 源码定位:
L31 - 说明:
TODO
- 类型:
构造器
- 无
方法
下面的方法块按源码顺序生成。
public static FileIOStat.Summary summary(Duration recordingDuration, List<FileIOStat> ioStats) @ L11
- 方法名:summary
- 源码定位:L11
- 返回类型:FileIOStat.Summary
- 修饰符:public static
参数:
- recordingDuration: Duration
- ioStats: List
说明:
TODO
代码
public record FileIOStat(Duration duration, @Nullable String path, long bytes) {
public static FileIOStat.Summary summary(Duration recordingDuration, List<FileIOStat> ioStats) {
long totalBytes = ioStats.stream().mapToLong(it -> it.bytes).sum();
return new FileIOStat.Summary(
totalBytes,
(double)totalBytes / recordingDuration.getSeconds(),
ioStats.size(),
(double)ioStats.size() / recordingDuration.getSeconds(),
ioStats.stream().map(FileIOStat::duration).reduce(Duration.ZERO, Duration::plus),
ioStats.stream()
.filter(it -> it.path != null)
.collect(Collectors.groupingBy(stat -> stat.path, Collectors.summingLong(it -> it.bytes)))
.entrySet()
.stream()
.sorted(Entry.<String, Long>comparingByValue().reversed())
.map(e -> Pair.of(e.getKey(), e.getValue()))
.limit(10L)
.toList()
);
}
public record Summary(
long totalBytes,
double bytesPerSecond,
long counts,
double countsPerSecond,
Duration timeSpentInIO,
List<Pair<String, Long>> topTenContributorsByTotalBytes
) {
}
}引用的其他类
- 无