IoSummary.java
net.minecraft.util.profiling.jfr.stats.IoSummary
信息
- 全限定名:net.minecraft.util.profiling.jfr.stats.IoSummary
- 类型:public final class
- 包:net.minecraft.util.profiling.jfr.stats
- 源码路径:src/main/java/net/minecraft/util/profiling/jfr/stats/IoSummary.java
- 起始行号:L8
- 职责:
TODO
字段/常量
-
totalCountAndSize- 类型:
IoSummary.CountAndSize - 修饰符:
private final - 源码定位:
L9 - 说明:
TODO
- 类型:
-
largestSizeContributors- 类型:
List<Pair<T,IoSummary.CountAndSize>> - 修饰符:
private final - 源码定位:
L10 - 说明:
TODO
- 类型:
-
recordingDuration- 类型:
Duration - 修饰符:
private final - 源码定位:
L11 - 说明:
TODO
- 类型:
内部类/嵌套类型
net.minecraft.util.profiling.jfr.stats.IoSummary.CountAndSize- 类型:
record - 修饰符:
public - 源码定位:
L42 - 说明:
TODO
- 类型:
构造器
public IoSummary(Duration recordingDuration, List<Pair<T,IoSummary.CountAndSize>> packetStats) @ L13
- 构造器名:IoSummary
- 源码定位:L13
- 修饰符:public
参数:
- recordingDuration: Duration
- packetStats: List<Pair<T,IoSummary.CountAndSize>>
说明:
TODO
方法
下面的方法块按源码顺序生成。
public double getCountsPerSecond() @ L22
- 方法名:getCountsPerSecond
- 源码定位:L22
- 返回类型:double
- 修饰符:public
参数:
- 无
说明:
TODO
public double getSizePerSecond() @ L26
- 方法名:getSizePerSecond
- 源码定位:L26
- 返回类型:double
- 修饰符:public
参数:
- 无
说明:
TODO
public long getTotalCount() @ L30
- 方法名:getTotalCount
- 源码定位:L30
- 返回类型:long
- 修饰符:public
参数:
- 无
说明:
TODO
public long getTotalSize() @ L34
- 方法名:getTotalSize
- 源码定位:L34
- 返回类型:long
- 修饰符:public
参数:
- 无
说明:
TODO
public List<Pair<T,IoSummary.CountAndSize>> largestSizeContributors() @ L38
- 方法名:largestSizeContributors
- 源码定位:L38
- 返回类型:List<Pair<T,IoSummary.CountAndSize>>
- 修饰符:public
参数:
- 无
说明:
TODO
代码
public final class IoSummary<T> {
private final IoSummary.CountAndSize totalCountAndSize;
private final List<Pair<T, IoSummary.CountAndSize>> largestSizeContributors;
private final Duration recordingDuration;
public IoSummary(Duration recordingDuration, List<Pair<T, IoSummary.CountAndSize>> packetStats) {
this.recordingDuration = recordingDuration;
this.totalCountAndSize = packetStats.stream().map(Pair::getSecond).reduce(new IoSummary.CountAndSize(0L, 0L), IoSummary.CountAndSize::add);
this.largestSizeContributors = packetStats.stream()
.sorted(Comparator.comparing(Pair::getSecond, IoSummary.CountAndSize.SIZE_THEN_COUNT))
.limit(10L)
.toList();
}
public double getCountsPerSecond() {
return (double)this.totalCountAndSize.totalCount / this.recordingDuration.getSeconds();
}
public double getSizePerSecond() {
return (double)this.totalCountAndSize.totalSize / this.recordingDuration.getSeconds();
}
public long getTotalCount() {
return this.totalCountAndSize.totalCount;
}
public long getTotalSize() {
return this.totalCountAndSize.totalSize;
}
public List<Pair<T, IoSummary.CountAndSize>> largestSizeContributors() {
return this.largestSizeContributors;
}
public record CountAndSize(long totalCount, long totalSize) {
private static final Comparator<IoSummary.CountAndSize> SIZE_THEN_COUNT = Comparator.comparing(IoSummary.CountAndSize::totalSize)
.thenComparing(IoSummary.CountAndSize::totalCount)
.reversed();
IoSummary.CountAndSize add(IoSummary.CountAndSize that) {
return new IoSummary.CountAndSize(this.totalCount + that.totalCount, this.totalSize + that.totalSize);
}
public float averageSize() {
return (float)this.totalSize / (float)this.totalCount;
}
}
}引用的其他类
- 无