WhatsLaggin report (manual)  46.2 s recorded, ended 2026-10-23 04:36:35
Minecraft 1.20.1, Forge 47.4.20, 462 mods, Java 17.0.8 OpenJDK 64-Bit Server VM, max heap 10.0 GB
GPU AMD Radeon RX 9070 XT (ATI Technologies Inc.), OpenGL 4.6.0 Core Profile Context 26.10.1.261008
CPU 16x AMD Ryzen 7 7800X3D 8-Core Processor, 16 threads, 31.4 GB RAM
Video 3440x1440 fullscreen @180 Hz, vsync off, fps limit unlimited, render distance 32, simulation 7, graphics fancy, shaders off
World minecraft:overworld, 88 entities loaded

VERDICT
  753 fps average (1.33 ms per frame), 1% low 97 fps, 0.1% low 26 fps.
  BALANCED: 0.97 ms CPU plus 0.35 ms waiting on the GPU per frame. Cuts on either side help.
  27 stutters over 20 ms (35.1 per minute), worst 152 ms. Biggest cause: GC pause (G1 Young Generation).

WHAT TO FIX (ranked by time lost per second of play)
  1. [gpu] Partly GPU-bound: 0.35 ms of each 1.33 ms frame waits on the GPU
       Both CPU and GPU cuts help here. CPU work: 0.97 ms per frame.
       Biggest GPU levers: render distance (32), resolution (3440x1440), graphics mode (fancy)
  2. [stutter] Stutter: GC pause (G1 Young Generation)
       20 frames over 20 ms, worst 97 ms, 1.1 s of extra frame time per minute
       allocation 1020 MB/s; 22 collections, worst 95 ms
       186 MB/s collections_of_optimizations (18%): com.misanthropy.collections_of_optimizations.core.NbtFastLoad.loadCompound:131 -> Object2ObjectOpenHashMap
       160 MB/s xaeroworldmap (16%): xaero.map.misc.ConsistentBitArray.<init>:30 -> [J
       111 MB/s fastchunkgen (11%): NoiseChunk.lambda$wrap$0:4484 [mixin merged from com.misanthropy.fastchunkgen.opts.worldgen.vanilla.mixin.noise_chunk_wrap.MixinNoiseChunk] -> [D
       Fix: cut allocation at the sites above (reuse objects, avoid streams/boxing in per-tick code).
  3. [cpu] embeddium costs 0.16 ms per frame on the render thread
       18% of render-thread CPU time, mostly in world, 58% in its own code (rest is vanilla/library code it called)
       67%  me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.drawChunkLayer:284   <- LevelRenderer.renderChunkLayer:40702
               hot: me.jellysquid.mods.sodium.client.render.chunk.DefaultChunkRenderer.fillCommandBuffer:165 (45%), executing GL32C.nglMultiDrawElementsBaseVertex (28%)
       17%  me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.setupTerrain:227   <- LevelRenderer.setupRender:40729
               hot: me.jellysquid.mods.sodium.client.render.chunk.RenderSectionManager.scheduleTranslucencyUpdates:181 (22%), executing LightEngine.getDataLayerData:204 (2.2%)
       4.4%  LevelRenderer.renderCloudsFast:7112 [mixin handler from me.jellysquid.mods.sodium.mixin.features.render.world.clouds.WorldRendererMixin]   <- LevelRenderer.renderClouds:1900
               hot: me.jellysquid.mods.sodium.client.render.immediate.CloudRenderer.applyFogModifiers:253 (22%), executing HashMap.put (10%)
       removing this cost entirely: about 753 -> 859 fps
  4. [cpu] xaeroworldmap costs 0.062 ms per frame on the render thread
       6.7% of render-thread CPU time, mostly in no phase, 74% in its own code (rest is vanilla/library code it called)
       98%  xaero.map.events.ClientEventsForge.renderTick:32   <- Minecraft.runTick:1148
               hot: xaero.map.region.BranchLeveledRegion.get:316 (13%), executing BlockAndTintGetter.getBrightness:15 (8.4%)
       removing this cost entirely: about 753 -> 789 fps
  5. [cpu] collections_of_optimizations costs 0.046 ms per frame on the render thread
       5.0% of render-thread CPU time, mostly in world, 90% in its own code (rest is vanilla/library code it called)
       34%  dev.engine_room.flywheel.impl.task.ParallelTaskExecutor.coo$unparkWorkers:517 [mixin redirect from com.misanthropy.collections_of_optimizations.mixin.flywheel.MixinParallelTaskExecutor]   <- dev.engine_room.flywheel.impl.task.ParallelTaskExecutor.execute:106
               hot: com.misanthropy.collections_of_optimizations.core.ParkingNotifier.post:28 (100%), executing Unsafe.unpark (100%)
       13%  ClientLevel.coo$planDisplayTick:25091 [mixin wrapMethod from com.misanthropy.collections_of_optimizations.mixin.subtleeffects.MixinClientLevelDisplayTick]   <- ClientLevel.animateTick [mixin handler from einstein.subtle_effects.mixin.client.ClientLevelMixin]
               hot: com.misanthropy.collections_of_optimizations.core.SubtleEffectsDisplayTick.run:161 (79%), executing Level.getGameTime:729 (5.1%)
       8.1%  me.decce.gnetum.ASMEventHandlerHelper.coo$singleModIdLookup:532 [mixin handler from com.misanthropy.collections_of_optimizations.mixin.gnetum.MixinASMEventHandlerHelper]   <- me.decce.gnetum.ASMEventHandlerHelper.tryGetModId
               executing Reference2ObjectOpenHashMap.get:321 (100%)
       removing this cost entirely: about 753 -> 779 fps
  6. [stutter] Stutter: GC pause (G1 Remark/Cleanup, end of a concurrent mark cycle)
       4 frames over 20 ms, worst 43 ms, 205 ms of extra frame time per minute
       allocation 1020 MB/s; 22 collections, worst 95 ms
       186 MB/s collections_of_optimizations (18%): com.misanthropy.collections_of_optimizations.core.NbtFastLoad.loadCompound:131 -> Object2ObjectOpenHashMap
       160 MB/s xaeroworldmap (16%): xaero.map.misc.ConsistentBitArray.<init>:30 -> [J
       111 MB/s fastchunkgen (11%): NoiseChunk.lambda$wrap$0:4484 [mixin merged from com.misanthropy.fastchunkgen.opts.worldgen.vanilla.mixin.noise_chunk_wrap.MixinNoiseChunk] -> [D
       Fix: cut allocation at the sites above (reuse objects, avoid streams/boxing in per-tick code).
  7. [stutter] Stutter: flywheel: dev.engine_room.flywheel.impl.task.WaitGroup.await
       1 frames over 20 ms, worst 152 ms, 196 ms of extra frame time per minute
  8. [cpu] immediatelyfast costs 0.043 ms per frame on the render thread
       4.7% of render-thread CPU time, mostly in world, 33% in its own code (rest is vanilla/library code it called)
       55%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:116   <- ItemInHandRenderer.m_109314_$mixinextras$wrapped$96:327
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (70%), executing RenderStateShard.setupRenderState:37 (12%)
       20%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:125   <- LevelRenderer.renderLevel:1283
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (45%), executing RenderStateShard.setupRenderState:37 (26%)
       8.9%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endLastBatch:105   <- LevelRenderer.renderLevel:1423
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (73%), executing RenderStateShard.clearRenderState:41 (15%)
       removing this cost entirely: about 753 -> 778 fps
  9. [cpu] gnetum costs 0.036 ms per frame on the render thread
       3.9% of render-thread CPU time, mostly in hud, 21% in its own code (rest is vanilla/library code it called)
       99%  ForgeGui.gnetum$render$mixinextras$bridge$64 [mixin wrapOperation from me.decce.gnetum.mixins.ForgeGuiMixin]   <- GameRenderer.render:945
               hot: ForgeGui.gnetum$postEvent:3130 [mixin merged from me.decce.gnetum.mixins.ForgeGuiMixin] (52%), executing ASMEventHandler.invoke:55 (24%)
       removing this cost entirely: about 753 -> 774 fps
 10. [cpu] punchy costs 0.034 ms per frame on the render thread
       3.7% of render-thread CPU time, mostly in world, 66% in its own code (rest is vanilla/library code it called)
       89%  ItemInHandRenderer.punchy$renderFirstPersonModel:1160 [mixin handler from punchy.mixin.client.ItemInHandRendererMixin]   <- ItemInHandRenderer.m_109314_$mixinextras$wrapped$96
               hot: punchy.client.state.MovementStateMachine.beginRenderSample:413 (4.9%), executing PoseStack.mulPose:50 (5.4%)
       8.7%  punchy.platform.ForgeClientPlatform.onClientTick:109   <- Minecraft.tick:1875
               hot: punchy.client.state.CustomAnimationResolver.normalizeType:518 (10%), executing StringLatin1.replace (20%)
       removing this cost entirely: about 753 -> 772 fps

FRAMES
  34,695 frames   p50 1.10 ms   p95 2.52 ms   p99 5.24 ms   worst 152 ms
  per frame:  tasks 0.045 ms  client tick 0.088 ms  render 0.73 ms  present 0.36 ms  other 0.10 ms
  inside those:  swap 0.35 ms  world 0.61 ms  hud 0.093 ms  screen 0.001 ms
  client tick: 3.29 ms per tick, 20.0 ticks per second
  GPU busy per frame (timer queries): p50 0.81 ms   p95 1.43 ms   p99 1.93 ms
  GPU time per pass (mean per frame, each pass also holds what mods drew at the stage before it):
    0.020 ms  2.2%  sky and frame setup   (p95 0.026 ms)
    0.36 ms  40%  solid terrain   (p95 0.64 ms)
    0.020 ms  2.2%  cutout mipped terrain   (p95 0.026 ms)
    0.000 ms  <0.1%  cutout terrain   (p95 0.003 ms)
    0.016 ms  1.8%  entities   (p95 0.022 ms)
    0.031 ms  3.4%  block entities   (p95 0.088 ms)
    0.021 ms  2.4%  translucent terrain   (p95 0.16 ms)
    0.000 ms  <0.1%  tripwire   (p95 0.002 ms)
    0.000 ms  <0.1%  particles   (p95 0.003 ms)
    0.037 ms  4.1%  weather and clouds   (p95 0.060 ms)
    0.000 ms  <0.1%  end of level render   (p95 0.003 ms)
    0.17 ms  19%  hand and post effects   (p95 0.25 ms)
    0.12 ms  14%  hud   (p95 0.19 ms)
    0.10 ms  11%  screens and rest of frame   (p95 0.27 ms)

RENDER THREAD CPU BY MOD (sampled; excludes GPU wait, fps limiter and blocked time)
  8,970 samples: CPU work 69%, GPU wait 30%, limiter 0.0%, blocked on other threads 0.3%
  mods caused 79% of render-thread CPU work, vanilla/forge/driver the rest
  19% of CPU work is inside OpenGL calls (driver work or a GPU sync), mostly glMultiDrawElementsBaseVertex; the mod that made the call is charged for it below
  ms/frame  share  own   mod                          mostly in
  0.16 ms   18%    58%   embeddium                    world
  0.11 ms   12%    84%   minecraft (vanilla)          world
  0.083 ms  9.0%   100%  forge (loader, events)       world
  0.062 ms  6.7%   74%   xaeroworldmap                no phase
  0.046 ms  5.0%   90%   collections_of_optimizations world
  0.043 ms  4.7%   33%   immediatelyfast              world
  0.036 ms  3.9%   21%   gnetum                       hud
  0.034 ms  3.7%   66%   punchy                       world
  0.031 ms  3.3%   54%   flywheel                     world
  0.026 ms  2.8%   22%   linggango_tweaks             world
  0.020 ms  2.2%   11%   oculus                       world
  0.017 ms  1.8%   19%   asyncparticles               world
  0.016 ms  1.8%   0.9%  whatslaggin                  world
  0.014 ms  1.5%   100%  lumenite                     world
  0.014 ms  1.5%   55%   brute_force_culling_revived  world
  0.21 ms   137 more below 0.5% each

HOT PATHS (where each mod's render-thread time goes; SRG names translated; <- = called from)
  embeddium  0.16 ms/frame, 18%
    67%   me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.drawChunkLayer:284  <- LevelRenderer.renderChunkLayer:40702
          hot me.jellysquid.mods.sodium.client.render.chunk.DefaultChunkRenderer.fillCommandBuffer:165 45%
          executing GL32C.nglMultiDrawElementsBaseVertex 28%
    17%   me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.setupTerrain:227  <- LevelRenderer.setupRender:40729
          hot me.jellysquid.mods.sodium.client.render.chunk.RenderSectionManager.scheduleTranslucencyUpdates:181 22%
          executing LightEngine.getDataLayerData:204 2.2%
    4.4%  LevelRenderer.renderCloudsFast:7112 [mixin handler from me.jellysquid.mods.sodium.mixin.features.render.world.clouds.WorldRendererMixin]  <- LevelRenderer.renderClouds:1900
          hot me.jellysquid.mods.sodium.client.render.immediate.CloudRenderer.applyFogModifiers:253 22%
          executing HashMap.put 10%
  minecraft (vanilla)  0.11 ms/frame, 12%, hottest vanilla methods:
    12%   BlockState.getLightBlock:629  <- me.decce.ixeris.RenderThreadStarter.run:39
    8.6%  Entity.shouldRender:1562  <- me.decce.ixeris.RenderThreadStarter.run:39
    5.8%  EntityRenderDispatcher.getRenderer:530  <- me.decce.ixeris.RenderThreadStarter.run:39
  xaeroworldmap  0.062 ms/frame, 6.7%
    98%   xaero.map.events.ClientEventsForge.renderTick:32  <- Minecraft.runTick:1148
          hot xaero.map.region.BranchLeveledRegion.get:316 13%
          executing BlockAndTintGetter.getBrightness:15 8.4%
  collections_of_optimizations  0.046 ms/frame, 5.0%
    34%   dev.engine_room.flywheel.impl.task.ParallelTaskExecutor.coo$unparkWorkers:517 [mixin redirect from com.misanthropy.collections_of_optimizations.mixin.flywheel.MixinParallelTaskExecutor]  <- dev.engine_room.flywheel.impl.task.ParallelTaskExecutor.execute:106
          hot com.misanthropy.collections_of_optimizations.core.ParkingNotifier.post:28 100%
          executing Unsafe.unpark 100%
    13%   ClientLevel.coo$planDisplayTick:25091 [mixin wrapMethod from com.misanthropy.collections_of_optimizations.mixin.subtleeffects.MixinClientLevelDisplayTick]  <- ClientLevel.animateTick [mixin handler from einstein.subtle_effects.mixin.client.ClientLevelMixin]
          hot com.misanthropy.collections_of_optimizations.core.SubtleEffectsDisplayTick.run:161 79%
          executing Level.getGameTime:729 5.1%
    8.1%  me.decce.gnetum.ASMEventHandlerHelper.coo$singleModIdLookup:532 [mixin handler from com.misanthropy.collections_of_optimizations.mixin.gnetum.MixinASMEventHandlerHelper]  <- me.decce.gnetum.ASMEventHandlerHelper.tryGetModId
          executing Reference2ObjectOpenHashMap.get:321 100%
  immediatelyfast  0.043 ms/frame, 4.7%
    55%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:116  <- ItemInHandRenderer.m_109314_$mixinextras$wrapped$96:327
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 70%
          executing RenderStateShard.setupRenderState:37 12%
    20%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:125  <- LevelRenderer.renderLevel:1283
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 45%
          executing RenderStateShard.setupRenderState:37 26%
    8.9%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endLastBatch:105  <- LevelRenderer.renderLevel:1423
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 73%
          executing RenderStateShard.clearRenderState:41 15%
  gnetum  0.036 ms/frame, 3.9%
    99%   ForgeGui.gnetum$render$mixinextras$bridge$64 [mixin wrapOperation from me.decce.gnetum.mixins.ForgeGuiMixin]  <- GameRenderer.render:945
          hot ForgeGui.gnetum$postEvent:3130 [mixin merged from me.decce.gnetum.mixins.ForgeGuiMixin] 52%
          executing ASMEventHandler.invoke:55 24%
  punchy  0.034 ms/frame, 3.7%
    89%   ItemInHandRenderer.punchy$renderFirstPersonModel:1160 [mixin handler from punchy.mixin.client.ItemInHandRendererMixin]  <- ItemInHandRenderer.m_109314_$mixinextras$wrapped$96
          hot punchy.client.state.MovementStateMachine.beginRenderSample:413 4.9%
          executing PoseStack.mulPose:50 5.4%
    8.7%  punchy.platform.ForgeClientPlatform.onClientTick:109  <- Minecraft.tick:1875
          hot punchy.client.state.CustomAnimationResolver.normalizeType:518 10%
          executing StringLatin1.replace 20%
  flywheel  0.031 ms/frame, 3.3%
    83%   LevelRenderer.flywheel$beforeBlockEntities:41147 [mixin handler from dev.engine_room.flywheel.impl.mixin.LevelRendererMixin]  <- LevelRenderer.renderLevel:1235
          hot dev.engine_room.flywheel.impl.task.WaitGroup.await:42 11%
          executing GL44C.nglBindBuffersRange 5.9%
    9.2%  ClientChunkCache.flywheel$onLightUpdate:1024 [mixin handler from dev.engine_room.flywheel.impl.mixin.ClientChunkCacheMixin]  <- ClientChunkCache.onLightUpdate
          hot dev.engine_room.flywheel.impl.visualization.VisualizationManagerImpl.get:188 42%
          executing Object.hashCode 32%
    4.9%  LevelRenderer.flywheel$beginRender:41126 [mixin handler from dev.engine_room.flywheel.impl.mixin.LevelRendererMixin]  <- LevelRenderer.renderLevel:1124
          hot dev.engine_room.flywheel.impl.visualization.VisualizationManagerImpl$LateInit.createVisualFrameContext:142 50%
          executing FrustumIntersection.<init>:152 50%

  blocked (render thread parked, waiting for another thread):
    0.003 ms/frame minecraft (vanilla)     Minecraft.runTick:1177

STUTTERS (frames over 20 ms, grouped by what was happening during them)
  frames  worst     extra/min   cause
  20      97 ms     1.1 s       GC pause (G1 Young Generation)
  4       43 ms     205 ms      GC pause (G1 Remark/Cleanup, end of a concurrent mark cycle)
  1       152 ms    196 ms      flywheel: dev.engine_room.flywheel.impl.task.WaitGroup.await
  1       32 ms     40 ms       unexplained (render)
  1       27 ms     34 ms       modernfix: ModelManager.lambda$deferBlockModelLoad$0 [mixin merged from org.embeddedt.modernfix.common.mixin.perf.dynamic_resources.ModelManagerMixin]

  worst frames:
  04:36:14.856  152 ms   render 151 ms         flywheel: dev.engine_room.flywheel.impl.task.WaitGroup.await
                             30 of 30 samples, hottest line dev.engine_room.flywheel.impl.task.WaitGroup.await:42
  04:35:59.601  97 ms    render 97 ms          GC pause (G1 Young Generation)
                             94 ms of the frame was a stop-the-world collection
  04:36:06.650  81 ms    client tick 74 ms     GC pause (G1 Young Generation)
                             69 ms of the frame was a stop-the-world collection
  04:36:33.932  78 ms    present 78 ms         GC pause (G1 Young Generation)
                             77 ms of the frame was a stop-the-world collection
  04:36:19.564  66 ms    present 65 ms         GC pause (G1 Young Generation)
                             64 ms of the frame was a stop-the-world collection
  04:36:06.518  65 ms    present 64 ms         GC pause (G1 Young Generation)
                             64 ms of the frame was a stop-the-world collection
  04:36:14.238  44 ms    render 44 ms          GC pause (G1 Young Generation)
                             41 ms of the frame was a stop-the-world collection
  04:36:05.284  43 ms    tasks 39 ms           GC pause (G1 Remark/Cleanup, end of a concurrent mark cycle)
                             36 ms of the frame was a stop-the-world collection
  04:36:16.558  42 ms    render 40 ms          GC pause (G1 Remark/Cleanup, end of a concurrent mark cycle)
                             38 ms of the frame was a stop-the-world collection
  04:35:57.471  40 ms    render 39 ms          GC pause (G1 Remark/Cleanup, end of a concurrent mark cycle)
                             38 ms of the frame was a stop-the-world collection

MEMORY AND GC
  allocated 46.0 GB (1020 MB/s, exact, all threads), max heap 10.0 GB
  22 GC pauses (0 old/full), 826 ms paused (1.8%), worst 95 ms, one every 2.1 s
  longest pauses:
    04:35:59.598  95 ms  G1 Young Generation, GCLocker Initiated GC
    04:36:33.931  77 ms  G1 Young Generation, G1 Evacuation Pause
    04:36:06.640  69 ms  G1 Young Generation, G1 Evacuation Pause
    04:36:06.518  64 ms  G1 Young Generation, G1 Evacuation Pause
    04:36:19.563  64 ms  G1 Young Generation, G1 Evacuation Pause
    04:36:14.235  41 ms  G1 Young Generation, GCLocker Initiated GC
    04:36:19.974  36 ms  G1 Young Generation, G1 Evacuation Pause
    04:36:16.381  35 ms  G1 Young Generation, G1 Evacuation Pause
  8 Remark/Cleanup pauses (concurrent mark cycles, not in the count above), 154 ms paused, worst 38 ms
  heap after GC 5.6 GB (56% of max, old garbage stays until the next marking cycle), changed by 201 MB over the recording
  by mod (JFR samples scaled to each thread's exact allocation; 99% of bytes covered):
    186 MB/s  18%    collections_of_optimizations 1,627 samples
        8.1%  com.misanthropy.collections_of_optimizations.core.NbtFastLoad.loadCompound:131 -> Object2ObjectOpenHashMap
        8.0%  com.misanthropy.collections_of_optimizations.core.NbtFastLoad.loadCompound:131 -> Object;
        5.7%  com.misanthropy.collections_of_optimizations.core.FeaturePlacement.step:63 -> 2122830775
    160 MB/s  16%    xaeroworldmap             502 samples
        47%  xaero.map.misc.ConsistentBitArray.<init>:30 -> [J
        13%  xaero.map.file.worldsave.WorldDataReader.lambda$buildRegion$1:150 -> DataResult
        5.0%  xaero.map.file.worldsave.WorldDataReader.lambda$buildRegion$1:150 -> Either$Left
    111 MB/s  11%    fastchunkgen              708 samples
        11%  NoiseChunk.lambda$wrap$0:4484 [mixin merged from com.misanthropy.fastchunkgen.opts.worldgen.vanilla.mixin.noise_chunk_wrap.MixinNoiseChunk] -> [D
        5.9%  ChunkHolder.beforeTick:4520 [mixin handler from com.misanthropy.fastchunkgen.fixes.chunkio.threading_issues.mixin.MixinChunkHolder] -> [J
    89 MB/s   8.7%   lithoform                 505 samples
        14%  com.misanthropy.lithoform.compat.LandProvinces.province:520 -> [J
        10%  com.misanthropy.lithoform.compat.LandProvinces.province:519 -> Climate$TargetPoint
        7.0%  NoiseChunk.lithoform$sharedScan:3507 [mixin handler from com.misanthropy.lithoform.mixin.PreliminarySurfaceMixin] -> DensityFunctions$Spline$Point
    86 MB/s   8.4%   minecraft (vanilla)       2,951 samples
        11%  LevelRenderer.getLightColor:2983 -> CallbackInfoReturnable
        6.9%  LevelRenderer.getLightColor:2983 -> Integer
    63 MB/s   6.1%   radium                    272 samples
        71%  CompoundTag.useFasterCollection:1129 [mixin modify from me.jellysquid.mods.lithium.mixin.alloc.nbt.NbtCompoundMixin] -> Object;
        15%  CompoundTag.useFasterCollection:1129 [mixin modify from me.jellysquid.mods.lithium.mixin.alloc.nbt.NbtCompoundMixin] -> Object2ObjectOpenHashMap
    37 MB/s   3.6%   modernfix                 198 samples
        39%  org.embeddedt.modernfix.world.gen.PrefetchingBlockColumn.setBlock:113 -> CallbackInfoReturnable
        13%  org.embeddedt.modernfix.structure.CachingStructureManager.readStructure:39 -> StructureTemplate$StructureBlockInfo
        11%  org.embeddedt.modernfix.structure.CachingStructureManager.readStructure:39 -> BlockPos
    28 MB/s   2.7%   embeddium                 764 samples
        35%  me.jellysquid.mods.sodium.client.world.biome.BiomeColorCache.updateColorBuffers:100 -> 961614138
        17%  me.jellysquid.mods.sodium.client.world.biome.BiomeColorCache.updateColorBuffers:100 -> 627869579
        9.6%  me.jellysquid.mods.sodium.client.model.light.smooth.SmoothLightPipeline.calculate:104 -> CallbackInfo
    27 MB/s   2.6%   linggango_tweaks          238 samples
        12%  com.misanthropy.linggango.linggango_tweaks.tweak.streams.WaterSolver.levels:204 -> [J
    19 MB/s   1.9%   structureessentials       57 samples
        19%  StructureTemplate$StructureBlockInfo.onInit:854 [mixin handler from com.structureessentials.mixin.BlockInfoMixin] -> BlockStateParser
        16%  StructureTemplate$StructureBlockInfo.onInit:854 [mixin handler from com.structureessentials.mixin.BlockInfoMixin] -> HashMap
        13%  StructureTemplate$StructureBlockInfo.onInit:854 [mixin handler from com.structureessentials.mixin.BlockInfoMixin] -> [B

INTEGRATED SERVER (single player; this is world lag, not FPS)
  924 ticks, mspt mean 10 ms, p50 9.57 ms, p95 15 ms, worst 49 ms, 0 over 50 ms
    2.30 ms/tick  23%    minecraft (vanilla)       
    1.03 ms/tick  10%    collections_of_optimizations ServerLevel.coo$growthTick:10142 [mixin modifyExpressionValue from com.misanthropy.collections_of_optimizations.mixin.immersiveweathering.MixinServerLevelGrowthTick]
    0.55 ms/tick  5.4%   forge (loader, events)    
    0.53 ms/tick  5.3%   radium                    ServerLevel.redirectBlockStateTick:4159 [mixin redirect from me.jellysquid.mods.lithium.mixin.alloc.chunk_random.ServerWorldMixin]
    0.35 ms/tick  3.5%   alexsmobs                 com.github.alexthe666.alexsmobs.entity.EntityLeafcutterAnt.tick:260
    0.25 ms/tick  2.5%   chunksending              ServerPlayer.chunksending$update:11916 [mixin handler from com.chunksending.mixin.ServerPlayerChunkSending]
    0.25 ms/tick  2.4%   ending_library            Level.guardEntityTick:14052 [mixin handler from com.mega.endinglib.mixin.time.time.LevelMixin]
    0.21 ms/tick  2.1%   terramity                 net.mcreator.terramity.entity.GreenFairyEntity.aiStep:213

THREADS (exact CPU per thread group; 'runs' = what JFR saw executing on it)
  the game used 6.53 of 16 cores, whole machine 65% busy
  cores  n    allocated   group                            runs
  3.68   14   19.1 GB     FastChunkGen worker ##           lithoform 52%, fastchunkgen 14%, collections_of_optimizations 12%
  0.71   1    7.8 GB      Render thread                    minecraft 17%, embeddium 11%, xaeroworldmap 9.5%
  0.44   15   5.8 GB      ForkJoinPool.commonPool-worker-# lithoform 57%, collections_of_optimizations 11%, integrated_api 9.3%
  0.43   10   2.3 GB      Chunk Render Task Executor ##    embeddium 42%, minecraft 38%, linggango_tweaks 8.4%
  0.38   1    1.3 GB      Linggango Streams                lithoform 69%, linggango_tweaks 27%
  0.29   1    7.8 GB      Server thread                    minecraft 30%, xaeroworldmap 11%, collections_of_optimizations 6.2%
  0.21   10   68 MB       Flywheel Task Executor ##        collections_of_optimizations 63%, flywheel 37%
  0.12   6    174 MB      Lumenite light #                 lumenite 99%
  0.04   15   38 MB       Worker-Main-#                    jdk 64%, minecraft 36%
  0.03   1    472 MB      minecraft_overworld - Light      lumenite 64%, minecraft 36%
  0.02   1    108 MB      BFR-OcclusionCuller              embeddium 77%, brute_force_culling_revived 17%, flerovium 6.0%
  0.02   1    528 MB      JFR Event Stream #               no JFR samples (idle or native)

ENTITIES, BLOCK ENTITIES, SCREENS (exact timings; per second of recording)
  entity render:
    1.36 ms/s  4/s      358 us   primitive_mobs:skeleton_warrior             worst 23 ms at -4220, 110, 783
    0.92 ms/s  24/s     38 us    minecraft:parrot                            worst 4.59 ms at -3718, 171, 813
    0.79 ms/s  21/s     37 us    alexsmobs:kangaroo                          worst 0.14 ms at -4136, 203, 685
  block entity render:
    0.68 ms/s  5,452/s  0 us     minecraft:brushable_block                   worst 0.18 ms at -3516, 68, 890
  entity tick:
    14 ms/s    20/s     700 us   minecraft:player                            worst 24 ms at -4002, 200, 777
    1.16 ms/s  30/s     39 us    terramity:green_fairy                       worst 0.26 ms at -4161, 132, 724
    1.15 ms/s  15/s     75 us    alexsmobs:anteater                          worst 0.31 ms at -3578, 71, 715
  block entity tick:
    0.76 ms/s  497/s    2 us     quark:monster_box                           worst 21 ms at -4009, -25, 938
    0.58 ms/s  1,645/s  0 us     lootr:lootr_chest                           worst 0.073 ms at 334, 28, 1048
    0.51 ms/s  479/s    1 us     minecraft:campfire                          worst 0.13 ms at 527, 3, 282
  server entity tick:
    16 ms/s    248/s    64 us    terramity:green_fairy                       worst 2.96 ms at -3643, 122, 866
    7.46 ms/s  87/s     85 us    alexsmobs:leafcutter_ant                    worst 1.33 ms at -3910, 70, 779
    4.26 ms/s  13/s     323 us   minecraft:player                            worst 34 ms at -3527, 200, 777
    4.06 ms/s  275/s    15 us    minecraft:item                              worst 2.64 ms at -3386, 61, 717
    3.40 ms/s  36/s     93 us    alexsmobs:capuchin_monkey                   worst 36 ms at -3627, 93, 754
    2.88 ms/s  35/s     82 us    minecraft:chicken                           worst 0.62 ms at -3554, 89, 785
    2.78 ms/s  32/s     88 us    eeeabsmobs:relic_observer                   worst 0.42 ms at -3302, 15, 686
  screen:
    1.04 ms/s  19/s     55 us    net.minecraft.client.gui.screens.ChatScreen worst 0.43 ms

JVM AND I/O
  class loads over 1 ms: 12 (53 ms), on the render/server thread 2 (9.30 ms)
  non-GC safepoints: 14 ms total (last: ThreadDump)
  log output: 0.5 lines/s
  exceptions thrown: 26.7/s, top: 2.0/s  NoDiscordClientException from optimized_rpc at dev.firstdark.rpc.exceptions.NoDiscordClientException.<init>:12

MOD VERSIONS (mods named in the findings)
  embeddium 0.3.32-beta.114-dirty+mc1.20.1;  xaeroworldmap 1.46.0;  collections_of_optimizations 5.6;  
  immediatelyfast 1.5.5+1.20.4;  gnetum 2.5.1+1.20.1-forge;  punchy 2.8c;  fastchunkgen 0.39;  ;  
  flywheel 1.0.5;  

RECORDING
  stack sampler every 5 ms: 8,970 render-thread, 1,726 server-thread samples (server only while ticking)
  JFR on (cpu, allocation, locks, file io, class loading, safepoints, exceptions): 14,920 CPU samples, 12,683 allocation samples
  method names: SRG ids translated to Mojang names; mixin handlers are charged to the mod whose mixin injected them
  'own' = share of a mod's time spent in its own classes; the rest is vanilla or library code it called
