WhatsLaggin report (manual)  30.4 s recorded, ended 2026-10-23 05:16:36
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 12, simulation 7, graphics fancy, shaders off
World minecraft:overworld, 73 entities loaded

VERDICT
  722 fps average (1.38 ms per frame), 1% low 79 fps, 0.1% low 34 fps.
  BALANCED: 1.00 ms CPU plus 0.38 ms waiting on the GPU per frame. Cuts on either side help.
  15 stutters over 20 ms (29.6 per minute), worst 66 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.38 ms of each 1.38 ms frame waits on the GPU
       Both CPU and GPU cuts help here. CPU work: 1.00 ms per frame.
       Biggest GPU levers: render distance (12), resolution (3440x1440), graphics mode (fancy)
  2. [stutter] Stutter: GC pause (G1 Young Generation)
       9 frames over 20 ms, worst 37 ms, 552 ms of extra frame time per minute
       allocation 648 MB/s; 9 collections, worst 34 ms
       167 MB/s collections_of_optimizations (26%): com.misanthropy.collections_of_optimizations.core.NbtFastLoad.loadCompound:131 -> Object;
       108 MB/s fastchunkgen (17%): NoiseChunk.lambda$wrap$0:4484 [mixin merged from com.misanthropy.fastchunkgen.opts.worldgen.vanilla.mixin.noise_chunk_wrap.MixinNoiseChunk] -> [D
       77 MB/s minecraft (12%): FastBufferedInputStream.<init>:26 -> [B
       Fix: cut allocation at the sites above (reuse objects, avoid streams/boxing in per-tick code).
  3. [cpu] embeddium costs 0.080 ms per frame on the render thread
       8.2% of render-thread CPU time, mostly in world, 47% in its own code (rest is vanilla/library code it called)
       52%  me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.drawChunkLayer:284   <- LevelRenderer.renderChunkLayer:40702
               hot: me.jellysquid.mods.sodium.client.gl.device.GLRenderDevice$ImmediateDrawCommandList.multiDrawElementsBaseVertex:319 (27%), executing GL32C.nglMultiDrawElementsBaseVertex (27%)
       15%  me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.setupTerrain:218   <- LevelRenderer.setupRender:40729
               hot: me.jellysquid.mods.sodium.client.render.chunk.region.RenderRegionManager.update:51 (13%), executing GL32C.glFenceSync (4.3%)
       11%  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.rebuildGeometry:300 (12%), executing BufferBuilder.push:5600 (12%)
       removing this cost entirely: about 722 -> 766 fps
  4. [tick] Each client tick takes 4.65 ms
       20 ticks a second run inline on the render thread, so 20 frames a second each take 4.65 ms longer than the rest (uneven frame pacing).
       collections_of_optimizations 0.56 ms per tick
       punchy 0.32 ms per tick
       linggango_tweaks 0.37 ms per tick
       alexsmobs 0.19 ms per tick
       create 0.16 ms per tick
  5. [cpu] collections_of_optimizations costs 0.064 ms per frame on the render thread
       6.5% of render-thread CPU time, mostly in world, 88% in its own code (rest is vanilla/library code it called)
       31%  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%)
       14%  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 (56%), executing Level.getGameTime:729 (12%)
       7.4%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.coo$onlyBusyLayers:1065 [mixin redirect from com.misanthropy.collections_of_optimizations.mixin.immediatelyfast.MixinBatchableBufferSource]   <- net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:117
               executing Arrays.fill (11%)
       removing this cost entirely: about 722 -> 757 fps
  6. [cpu] xaeroworldmap costs 0.062 ms per frame on the render thread
       6.4% of render-thread CPU time, mostly in no phase, 54% in its own code (rest is vanilla/library code it called)
       96%  xaero.map.events.ClientEventsForge.renderTick:32   <- Minecraft.runTick:1148
               hot: xaero.map.graphics.TextureUploader.uploadTextures:118 (24%), executing GL11C.glFinish (32%)
       removing this cost entirely: about 722 -> 756 fps
  7. [cpu] immediatelyfast costs 0.057 ms per frame on the render thread
       5.9% of render-thread CPU time, mostly in world, 28% in its own code (rest is vanilla/library code it called)
       44%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:116   <- ItemInHandRenderer.m_109314_$mixinextras$wrapped$96:327
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (81%), executing RenderStateShard.clearRenderState:41 (14%)
       24%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:125   <- LevelRenderer.renderLevel:1283
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (31%), executing RenderStateShard.setupRenderState:37 (19%)
       15%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endLastBatch:105   <- LevelRenderer.renderLevel:1228
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (85%), executing RenderStateShard.clearRenderState:41 (15%)
       removing this cost entirely: about 722 -> 753 fps
  8. [stutter] Stutter: unexplained (render)
       3 frames over 20 ms, worst 66 ms, 218 ms of extra frame time per minute
  9. [cpu] punchy costs 0.041 ms per frame on the render thread
       4.2% of render-thread CPU time, mostly in world, 73% in its own code (rest is vanilla/library code it called)
       76%  ItemInHandRenderer.punchy$renderFirstPersonModel:1160 [mixin handler from punchy.mixin.client.ItemInHandRendererMixin]   <- ItemInHandRenderer.m_109314_$mixinextras$wrapped$96
               hot: punchy.client.state.MovementStateMachine.endRenderSample:419 (5.0%), executing PoseStack.mulPose:50 (7.6%)
       22%  punchy.platform.ForgeClientPlatform.onClientTick:109   <- Minecraft.tick:1875
               hot: punchy.client.render.ToolTuning.idFor:776 (5.9%), executing StringConcatHelper.stringOf (8.8%)
       removing this cost entirely: about 722 -> 744 fps
 10. [cpu] gnetum costs 0.038 ms per frame on the render thread
       3.9% of render-thread CPU time, mostly in hud, 25% 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] (43%), executing ASMEventHandler.invoke:55 (21%)
       removing this cost entirely: about 722 -> 743 fps

FRAMES
  21,902 frames   p50 1.01 ms   p95 3.24 ms   p99 8.00 ms   worst 66 ms
  per frame:  tasks 0.041 ms  client tick 0.13 ms  render 0.71 ms  present 0.39 ms  other 0.12 ms
  inside those:  swap 0.38 ms  world 0.55 ms  hud 0.12 ms  screen 0.007 ms
  client tick: 4.65 ms per tick, 20.0 ticks per second
  GPU busy per frame (timer queries): p50 0.69 ms   p95 1.70 ms   p99 2.52 ms
  GPU time per pass (mean per frame, each pass also holds what mods drew at the stage before it):
    0.023 ms  2.8%  sky and frame setup   (p95 0.031 ms)
    0.13 ms  16%  solid terrain   (p95 0.30 ms)
    0.026 ms  3.1%  cutout mipped terrain   (p95 0.036 ms)
    0.000 ms  <0.1%  cutout terrain   (p95 0.002 ms)
    0.022 ms  2.7%  entities   (p95 0.045 ms)
    0.000 ms  <0.1%  block entities   (p95 0.002 ms)
    0.050 ms  6.2%  translucent terrain   (p95 0.30 ms)
    0.000 ms  <0.1%  tripwire   (p95 0.002 ms)
    0.000 ms  <0.1%  particles   (p95 0.006 ms)
    0.045 ms  5.6%  weather and clouds   (p95 0.096 ms)
    0.000 ms  <0.1%  end of level render   (p95 0.002 ms)
    0.22 ms  27%  hand and post effects   (p95 0.35 ms)
    0.16 ms  19%  hud   (p95 0.22 ms)
    0.14 ms  17%  screens and rest of frame   (p95 0.50 ms)

RENDER THREAD CPU BY MOD (sampled; excludes GPU wait, fps limiter and blocked time)
  5,310 samples: CPU work 70%, GPU wait 30%, limiter 0.0%, blocked on other threads 0.2%
  mods caused 79% of render-thread CPU work, vanilla/forge/driver the rest
  17% of CPU work is inside OpenGL calls (driver work or a GPU sync), mostly glFinish; the mod that made the call is charged for it below
  ms/frame  share  own   mod                          mostly in
  0.12 ms   12%    86%   minecraft (vanilla)          world
  0.087 ms  8.9%   100%  forge (loader, events)       world
  0.080 ms  8.2%   47%   embeddium                    world
  0.064 ms  6.5%   88%   collections_of_optimizations world
  0.062 ms  6.4%   54%   xaeroworldmap                no phase
  0.057 ms  5.9%   28%   immediatelyfast              world
  0.041 ms  4.2%   73%   punchy                       world
  0.038 ms  3.9%   25%   gnetum                       hud
  0.038 ms  3.9%   33%   linggango_tweaks             world
  0.023 ms  2.4%   15%   oculus                       world
  0.019 ms  1.9%   50%   brute_force_culling_revived  world
  0.017 ms  1.8%   6.1%  whatslaggin                  world
  0.015 ms  1.6%   17%   let_there_be_atmosphere      world
  0.014 ms  1.5%   25%   asyncparticles               world
  0.014 ms  1.5%   44%   xaerolib                     hud
  0.28 ms   145 more below 0.5% each

HOT PATHS (where each mod's render-thread time goes; SRG names translated; <- = called from)
  minecraft (vanilla)  0.12 ms/frame, 12%, hottest vanilla methods:
    9.1%  Entity.shouldRender:1562  <- me.decce.ixeris.RenderThreadStarter.run:39
    7.3%  EntityRenderDispatcher.getRenderer:530  <- me.decce.ixeris.RenderThreadStarter.run:39
    6.5%  LevelRenderer.renderLevel:1198  <- me.decce.ixeris.RenderThreadStarter.run:39
          executing Iterators$1.next:146 10%
  embeddium  0.080 ms/frame, 8.2%
    52%   me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.drawChunkLayer:284  <- LevelRenderer.renderChunkLayer:40702
          hot me.jellysquid.mods.sodium.client.gl.device.GLRenderDevice$ImmediateDrawCommandList.multiDrawElementsBaseVertex:319 27%
          executing GL32C.nglMultiDrawElementsBaseVertex 27%
    15%   me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.setupTerrain:218  <- LevelRenderer.setupRender:40729
          hot me.jellysquid.mods.sodium.client.render.chunk.region.RenderRegionManager.update:51 13%
          executing GL32C.glFenceSync 4.3%
    11%   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.rebuildGeometry:300 12%
          executing BufferBuilder.push:5600 12%
  collections_of_optimizations  0.064 ms/frame, 6.5%
    31%   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%
    14%   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 56%
          executing Level.getGameTime:729 12%
    7.4%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.coo$onlyBusyLayers:1065 [mixin redirect from com.misanthropy.collections_of_optimizations.mixin.immediatelyfast.MixinBatchableBufferSource]  <- net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:117
          executing Arrays.fill 11%
  xaeroworldmap  0.062 ms/frame, 6.4%
    96%   xaero.map.events.ClientEventsForge.renderTick:32  <- Minecraft.runTick:1148
          hot xaero.map.graphics.TextureUploader.uploadTextures:118 24%
          executing GL11C.glFinish 32%
  immediatelyfast  0.057 ms/frame, 5.9%
    44%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:116  <- ItemInHandRenderer.m_109314_$mixinextras$wrapped$96:327
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 81%
          executing RenderStateShard.clearRenderState:41 14%
    24%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:125  <- LevelRenderer.renderLevel:1283
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 31%
          executing RenderStateShard.setupRenderState:37 19%
    15%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endLastBatch:105  <- LevelRenderer.renderLevel:1228
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 85%
          executing RenderStateShard.clearRenderState:41 15%
  punchy  0.041 ms/frame, 4.2%
    76%   ItemInHandRenderer.punchy$renderFirstPersonModel:1160 [mixin handler from punchy.mixin.client.ItemInHandRendererMixin]  <- ItemInHandRenderer.m_109314_$mixinextras$wrapped$96
          hot punchy.client.state.MovementStateMachine.endRenderSample:419 5.0%
          executing PoseStack.mulPose:50 7.6%
    22%   punchy.platform.ForgeClientPlatform.onClientTick:109  <- Minecraft.tick:1875
          hot punchy.client.render.ToolTuning.idFor:776 5.9%
          executing StringConcatHelper.stringOf 8.8%
  gnetum  0.038 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] 43%
          executing ASMEventHandler.invoke:55 21%
  linggango_tweaks  0.038 ms/frame, 3.9%
    22%   com.misanthropy.linggango.linggango_tweaks.lumalight.LumalightClient.onRenderLevel:91  <- GameRenderer.renderLevel:1128
          hot com.misanthropy.linggango.linggango_tweaks.lumalight.PostEffectRenderer.draw:210 41%
          executing GL45C.glBlitNamedFramebuffer 22%
    15%   com.misanthropy.linggango.linggango_tweaks.client.DynamicCrosshairHandler.onRenderCrosshair:212  <- ForgeGui.gnetum$postEvent:3130 [mixin merged from me.decce.gnetum.mixins.ForgeGuiMixin]
          hot com.misanthropy.linggango.linggango_tweaks.client.DynamicCrosshairHandler.coneGap:149 4.5%
          executing VertexBuffer._drawWithShader:128 18%
    13%   GameRenderer.linggango$lumaOutlineFirstPerson:18121 [mixin handler from com.misanthropy.linggango.linggango_tweaks.mixin.lumalight.FirstPersonRimMixin]  <- GameRenderer.renderLevel:1132
          hot com.misanthropy.linggango.linggango_tweaks.lumalight.PostEffectRenderer.drawInPlace:166 56%
          executing GL20C.glUseProgram 17%

  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
  9       37 ms     552 ms      GC pause (G1 Young Generation)
  3       66 ms     218 ms      unexplained (render)
  1       58 ms     113 ms      JVM safepoint for a stack sample (profiler overhead, not your mods)
  1       33 ms     62 ms       subtle_effects: einstein.subtle_effects.particle.SplashRippleParticle$Provider.createParticle
  1       22 ms     42 ms       unexplained (present)

  worst frames:
  05:16:10.512  66 ms    render 66 ms          unexplained (render)
                             13 samples, no single owner
  05:16:21.424  58 ms    client tick 56 ms     JVM safepoint for a stack sample (profiler overhead, not your mods)
                             50 ms with every thread stopped for a stack sample (this profiler or spark); a thread was slow to reach the safepoint
  05:16:12.575  37 ms    render 36 ms          GC pause (G1 Young Generation)
                             34 ms of the frame was a stop-the-world collection
  05:16:16.450  36 ms    present 35 ms         GC pause (G1 Young Generation)
                             33 ms of the frame was a stop-the-world collection
  05:16:35.955  34 ms    tasks 31 ms           GC pause (G1 Young Generation)
                             23 ms of the frame was a stop-the-world collection
  05:16:19.617  34 ms    render 34 ms          GC pause (G1 Young Generation)
                             30 ms of the frame was a stop-the-world collection
  05:16:11.698  33 ms    client tick 4.89 ms   subtle_effects: einstein.subtle_effects.particle.SplashRippleParticle$Provider.createParticle
                             3 of 4 samples, hottest line einstein.subtle_effects.particle.SplashRippleParticle$Provider.createParticle:90
  05:16:24.748  32 ms    client tick 29 ms     GC pause (G1 Young Generation)
                             23 ms of the frame was a stop-the-world collection
  05:16:09.147  31 ms    present 25 ms         GC pause (G1 Young Generation)
                             25 ms of the frame was a stop-the-world collection
  05:16:26.959  30 ms    render 30 ms          GC pause (G1 Young Generation)
                             28 ms of the frame was a stop-the-world collection

MEMORY AND GC
  allocated 19.3 GB (648 MB/s, exact, all threads), max heap 10.0 GB
  9 GC pauses (0 old/full), 248 ms paused (0.8%), worst 34 ms, one every 3.4 s
  longest pauses:
    05:16:12.572  34 ms  G1 Young Generation, G1 Evacuation Pause
    05:16:16.449  33 ms  G1 Young Generation, GCLocker Initiated GC
    05:16:19.613  31 ms  G1 Young Generation, GCLocker Initiated GC
    05:16:26.957  28 ms  G1 Young Generation, G1 Evacuation Pause
    05:16:09.146  25 ms  G1 Young Generation, G1 Evacuation Pause
    05:16:21.810  25 ms  G1 Young Generation, G1 Evacuation Pause
    05:16:30.205  25 ms  G1 Young Generation, G1 Evacuation Pause
    05:16:24.740  24 ms  G1 Young Generation, G1 Evacuation Pause
  heap after GC 5.6 GB (56% of max, old garbage stays until the next marking cycle), changed by 634 MB over the recording
  by mod (JFR samples scaled to each thread's exact allocation; 98% of bytes covered):
    167 MB/s  26%    collections_of_optimizations 1,390 samples
        9.9%  com.misanthropy.collections_of_optimizations.core.NbtFastLoad.loadCompound:131 -> Object;
        9.0%  com.misanthropy.collections_of_optimizations.core.NbtFastLoad.loadCompound:131 -> Object2ObjectOpenHashMap
        7.4%  com.misanthropy.collections_of_optimizations.core.NbtFastLoad.readValue:168 -> [J
    108 MB/s  17%    fastchunkgen              667 samples
        7.3%  NoiseChunk.lambda$wrap$0:4484 [mixin merged from com.misanthropy.fastchunkgen.opts.worldgen.vanilla.mixin.noise_chunk_wrap.MixinNoiseChunk] -> [D
        7.1%  ChunkMap.lambda$scheduleChunkLoad$3:15032 [mixin merged from com.misanthropy.fastchunkgen.threading.chunkio.mixin.MixinThreadedAnvilChunkStorage] -> DataResult
        6.7%  ChunkHolder.beforeTick:4520 [mixin handler from com.misanthropy.fastchunkgen.fixes.chunkio.threading_issues.mixin.MixinChunkHolder] -> [J
    77 MB/s   12%    minecraft (vanilla)       1,512 samples
        6.4%  FastBufferedInputStream.<init>:26 -> [B
        6.2%  RegionFile.getChunkDataInputStream:180 -> [B
    26 MB/s   4.1%   linggango_tweaks          393 samples
        6.8%  com.misanthropy.linggango.linggango_tweaks.tweak.streams.WaterSolver.levels:204 -> [J
        6.2%  com.misanthropy.linggango.linggango_tweaks.tweak.streams.StreamMacro.tile:557 -> Long
    26 MB/s   4.0%   lithoform                 174 samples
        13%  com.misanthropy.lithoform.compat.LandProvinces.province:520 -> [J
        8.6%  com.misanthropy.lithoform.compat.LandProvinces.province:519 -> Climate$TargetPoint
        8.4%  com.misanthropy.lithoform.biome.SkyGuard.lambda$edges$1:160 -> CallbackInfoReturnable
    22 MB/s   3.4%   biomeswevegone            112 samples
        14%  net.potionstudios.biomeswevegone.world.level.levelgen.surfacerules.WeightedRuleSource.apply:31 -> SurfaceRules$TestRule
        9.3%  net.potionstudios.biomeswevegone.world.level.levelgen.surfacerules.WeightedRuleSource.apply:31 -> SurfaceRules$StoneDepthCheck$1StoneDepthCondition
        7.5%  net.potionstudios.biomeswevegone.world.level.levelgen.customterrain.CragGardenExtension.runCragGardenExtension:65 -> Iterators$ArrayItr
    22 MB/s   3.4%   radium                    145 samples
        61%  CompoundTag.useFasterCollection:1129 [mixin modify from me.jellysquid.mods.lithium.mixin.alloc.nbt.NbtCompoundMixin] -> Object;
        16%  CompoundTag.useFasterCollection:1129 [mixin modify from me.jellysquid.mods.lithium.mixin.alloc.nbt.NbtCompoundMixin] -> Object2ObjectOpenHashMap
        8.0%  LevelChunkSection.setBlockStateNoLocking:521 [mixin redirect from me.jellysquid.mods.lithium.mixin.chunk.no_locking.ChunkSectionMixin] -> CallbackInfoReturnable
    19 MB/s   2.9%   xaeroworldmap             79 samples
        15%  xaero.map.file.worldsave.WorldDataReader.lambda$buildRegion$1:150 -> DataResult
        11%  xaero.map.file.worldsave.WorldDataReader.lambda$buildRegion$1:150 -> Object2ObjectArrayMap
        8.6%  xaero.map.file.worldsave.WorldDataReader.lambda$buildRegion$1:150 -> Either$Left
    13 MB/s   2.0%   modernfix                 144 samples
        44%  org.embeddedt.modernfix.world.gen.PrefetchingBlockColumn.setBlock:113 -> CallbackInfoReturnable
        8.7%  org.embeddedt.modernfix.structure.CachingStructureManager.readStructure:39 -> StructureTemplate$StructureBlockInfo
    12 MB/s   1.9%   embeddium                 487 samples
        22%  me.jellysquid.mods.sodium.client.world.biome.BiomeColorCache.updateColorBuffers:100 -> 1531254219
        18%  me.jellysquid.mods.sodium.client.world.biome.BiomeColorCache.updateColorBuffers:100 -> 818591722
        11%  me.jellysquid.mods.sodium.client.model.light.smooth.SmoothLightPipeline.calculate:104 -> CallbackInfo

INTEGRATED SERVER (single player; this is world lag, not FPS)
  608 ticks, mspt mean 14 ms, p50 12 ms, p95 26 ms, worst 78 ms, 3 over 50 ms
    3.28 ms/tick  24%    minecraft (vanilla)       
    1.02 ms/tick  7.4%   collections_of_optimizations ServerLevel.coo$growthTick:10142 [mixin modifyExpressionValue from com.misanthropy.collections_of_optimizations.mixin.immersiveweathering.MixinServerLevelGrowthTick]
    0.85 ms/tick  6.1%   forge (loader, events)    
    0.73 ms/tick  5.3%   radium                    EntitySectionStorage.forEachInBox:555 [mixin handler from me.jellysquid.mods.lithium.mixin.entity.fast_retrieval.SectionedEntityCacheMixin]
    0.58 ms/tick  4.2%   alexsmobs                 com.github.alexthe666.alexsmobs.entity.EntityLeafcutterAnt.tick:260
    0.36 ms/tick  2.6%   pehkui                    Entity.pehkui$tick:38737 [mixin handler from virtuoel.pehkui.mixin.EntityMixin]
    0.31 ms/tick  2.2%   linggango_tweaks          ForgeEventFactory.linggango$filterStagedSpawns:2570 [mixin localvar from com.misanthropy.linggango.linggango_tweaks.mixin.compat.PotentialSpawnsFilterMixin]

THREADS (exact CPU per thread group; 'runs' = what JFR saw executing on it)
  the game used 4.67 of 16 cores, whole machine 68% busy
  cores  n    allocated   group                            runs
  2.19   12   9.8 GB      FastChunkGen worker ##           lithoform 36%, collections_of_optimizations 18%, fastchunkgen 16%
  0.64   1    2.7 GB      Render thread                    minecraft 14%, xaeroworldmap 12%, punchy 10%
  0.40   1    554 MB      Linggango Streams                lithoform 62%, linggango_tweaks 33%
  0.37   15   1.4 GB      ForkJoinPool.commonPool-worker-# lithoform 63%, collections_of_optimizations 12%, integrated_api 8.2%
  0.31   1    2.9 GB      Server thread                    minecraft 29%, radium 7.0%, collections_of_optimizations 7.0%
  0.21   10   482 MB      Chunk Render Task Executor ##    embeddium 49%, minecraft 29%, linggango_tweaks 8.4%
  0.12   10   42 MB       Flywheel Task Executor ##        collections_of_optimizations 60%, flywheel 40%
  0.08   21   265 MB      Thread-#                         xaeroworldmap 48%, minecraft 43%
  0.08   6    79 MB       Lumenite light #                 lumenite 98%
  0.05   15   25 MB       Worker-Main-#                    too few samples
  0.03   1    333 MB      JFR Event Stream #               no JFR samples (idle or native)
  0.02   1    360 KB      whatslaggin-threads              no JFR samples (idle or native)

ENTITIES, BLOCK ENTITIES, SCREENS (exact timings; per second of recording)
  entity render:
    8.71 ms/s  124/s    71 us    alexsmobs:leafcutter_ant                    worst 15 ms at 1490, 190, 787
    5.66 ms/s  448/s    13 us    minecraft:item                              worst 9.06 ms at 1474, 199, 792
    4.97 ms/s  67/s     74 us    terramity:green_fairy                       worst 3.33 ms at 1469, 187, 764
    3.32 ms/s  102/s    33 us    minecraft:enderman                          worst 0.20 ms at 2502, 64, 808
    2.90 ms/s  38/s     76 us    alexsmobs:komodo_dragon                     worst 2.67 ms at 1195, 161, 750
    2.05 ms/s  36/s     57 us    minecraft:magma_cube                        worst 0.99 ms at 1165, 150, 709
  entity tick:
    17 ms/s    20/s     852 us   minecraft:player                            worst 7.40 ms at 1337, 200, 778
    2.96 ms/s  108/s    27 us    minecraft:item                              worst 4.23 ms at 1474, 199, 792
    2.29 ms/s  41/s     55 us    alexsmobs:leafcutter_ant                    worst 5.10 ms at 1490, 190, 787
  server entity tick:
    19 ms/s    243/s    76 us    terramity:green_fairy                       worst 2.19 ms at 1346, 236, 832
    15 ms/s    555/s    26 us    minecraft:item                              worst 10 ms at 1273, 212, 831
    11 ms/s    88/s     120 us   alexsmobs:leafcutter_ant                    worst 3.38 ms at 1489, 190, 788
    5.70 ms/s  45/s     127 us   hexerei:crow                                worst 4.49 ms at 1302, 178, 695
    5.58 ms/s  18/s     303 us   minecraft:player                            worst 8.67 ms at 1477, 200, 778
    4.65 ms/s  56/s     82 us    minecraft:skeleton                          worst 1.18 ms at 1387, 104, 847
    4.34 ms/s  72/s     60 us    minecraft:creeper                           worst 0.64 ms at 1241, 141, 767
    3.07 ms/s  15/s     210 us   minecraft:frog                              worst 24 ms at 916, 97, 775
  server block entity tick:
    1.64 ms/s  3,269/s  1 us     minecraft:sculk_sensor                      worst 3.57 ms at 1520, -18, 754
  screen:
    4.99 ms/s  74/s     67 us    net.minecraft.client.gui.screens.ChatScreen worst 0.80 ms

JVM AND I/O
  class loads over 1 ms: 276 (636 ms), on the render/server thread 88 (207 ms)
    by owner: minecraft 115 classes, 320 ms; saintsdragons 27 classes, 59 ms; library 11 classes, 23 ms; fastchunkgen 16 classes, 22 ms; create 4 classes, 15 ms
  non-GC safepoints: 69 ms total (last: ThreadDump)
  log output: 3.9 lines/s, top: 3.5/s  net.minecraft.world.level.chunk.storage.ChunkSerializer
  exceptions thrown: 84.4/s, top: 3.9/s  UnionFileSystem$UncheckedIOException from modernfix at ModelManager.lambda$deferBlockStateLoad$3:568 [mixin merged from org.embeddedt.modernfix.common.mixin.perf.dynamic_resources.ModelManagerMixin]

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

RECORDING
  stack sampler every 5 ms: 5,310 render-thread, 1,276 server-thread samples (server only while ticking)
  JFR on (cpu, allocation, locks, file io, class loading, safepoints, exceptions): 6,663 CPU samples, 7,869 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
