DebugEntryDetailedMemory.java

net.minecraft.client.gui.components.debug.DebugEntryDetailedMemory

信息

  • 全限定名:net.minecraft.client.gui.components.debug.DebugEntryDetailedMemory
  • 类型:public class
  • 包:net.minecraft.client.gui.components.debug
  • 源码路径:src/main/java/net/minecraft/client/gui/components/debug/DebugEntryDetailedMemory.java
  • 起始行号:L16
  • 实现:DebugScreenEntry
  • 职责:

    TODO

字段/常量

  • GROUP

    • 类型: Identifier
    • 修饰符: private static final
    • 源码定位: L17
    • 说明:

      TODO

  • memoryBean

    • 类型: MemoryMXBean
    • 修饰符: final
    • 源码定位: L18
    • 说明:

      TODO

内部类/嵌套类型

构造器

方法

下面的方法块按源码顺序生成。

public void display(DebugScreenDisplayer displayer, Level serverOrClientLevel, LevelChunk clientChunk, LevelChunk serverChunk) @ L20

  • 方法名:display
  • 源码定位:L20
  • 返回类型:void
  • 修饰符:public

参数:

  • displayer: DebugScreenDisplayer
  • serverOrClientLevel: Level
  • clientChunk: LevelChunk
  • serverChunk: LevelChunk

说明:

TODO

private static long bytesToMebibytes(long used) @ L28

  • 方法名:bytesToMebibytes
  • 源码定位:L28
  • 返回类型:long
  • 修饰符:private static

参数:

  • used: long

说明:

TODO

private static String printMemoryUsage(MemoryUsage memoryUsage, String type) @ L32

  • 方法名:printMemoryUsage
  • 源码定位:L32
  • 返回类型:String
  • 修饰符:private static

参数:

  • memoryUsage: MemoryUsage
  • type: String

说明:

TODO

public boolean isAllowed(boolean reducedDebugInfo) @ L44

  • 方法名:isAllowed
  • 源码定位:L44
  • 返回类型:boolean
  • 修饰符:public

参数:

  • reducedDebugInfo: boolean

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class DebugEntryDetailedMemory implements DebugScreenEntry {
    private static final Identifier GROUP = Identifier.withDefaultNamespace("memory");
    final MemoryMXBean memoryBean = ManagementFactory.getMemoryMXBean();
 
    @Override
    public void display(DebugScreenDisplayer displayer, @Nullable Level serverOrClientLevel, @Nullable LevelChunk clientChunk, @Nullable LevelChunk serverChunk) {
        displayer.addToGroup(
            GROUP,
            List.of(printMemoryUsage(this.memoryBean.getHeapMemoryUsage(), "heap"), printMemoryUsage(this.memoryBean.getNonHeapMemoryUsage(), "non-heap"))
        );
    }
 
    private static long bytesToMebibytes(long used) {
        return used / 1024L / 1024L;
    }
 
    private static String printMemoryUsage(MemoryUsage memoryUsage, String type) {
        return String.format(
            Locale.ROOT,
            "Memory (%s): i=%03dMiB u=%03dMiB c=%03dMiB m=%03dMiB",
            type,
            bytesToMebibytes(memoryUsage.getInit()),
            bytesToMebibytes(memoryUsage.getUsed()),
            bytesToMebibytes(memoryUsage.getCommitted()),
            bytesToMebibytes(memoryUsage.getMax())
        );
    }
 
    @Override
    public boolean isAllowed(boolean reducedDebugInfo) {
        return true;
    }
}

引用的其他类