WhatsLaggin report (manual)  46.2 s recorded, ended 2026-10-23 05:06:41
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, 76 entities loaded

VERDICT
  718 fps average (1.39 ms per frame), 1% low 87 fps, 0.1% low 25 fps.
  BALANCED: 1.02 ms CPU plus 0.37 ms waiting on the GPU per frame. Cuts on either side help.
  34 stutters over 20 ms (44.2 per minute), worst 144 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.37 ms of each 1.39 ms frame waits on the GPU
       Both CPU and GPU cuts help here. CPU work: 1.02 ms per frame.
       Biggest GPU levers: render distance (32), resolution (3440x1440), graphics mode (fancy)
  2. [stutter] Stutter: GC pause (G1 Young Generation)
       25 frames over 20 ms, worst 81 ms, 1.2 s of extra frame time per minute
       allocation 994 MB/s; 25 collections, worst 80 ms
       194 MB/s collections_of_optimizations (20%): com.misanthropy.collections_of_optimizations.core.NbtFastLoad.loadCompound:131 -> Object;
       118 MB/s fastchunkgen (12%): NoiseChunk.lambda$wrap$0:4484 [mixin merged from com.misanthropy.fastchunkgen.opts.worldgen.vanilla.mixin.noise_chunk_wrap.MixinNoiseChunk] -> [D
       99 MB/s lithoform (9.9%): com.misanthropy.lithoform.compat.LandProvinces.province:520 -> [J
       Fix: cut allocation at the sites above (reuse objects, avoid streams/boxing in per-tick code).
  3. [cpu] embeddium costs 0.15 ms per frame on the render thread
       15% of render-thread CPU time, mostly in world, 57% in its own code (rest is vanilla/library code it called)
       65%  me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.drawChunkLayer:284   <- LevelRenderer.renderChunkLayer:40702
               hot: me.jellysquid.mods.sodium.client.render.chunk.DefaultChunkRenderer.fillCommandBuffer:165 (40%), executing GL32C.nglMultiDrawElementsBaseVertex (26%)
       17%  me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.setupTerrain:227   <- LevelRenderer.setupRender:40729
               hot: me.jellysquid.mods.sodium.client.render.chunk.RenderSectionManager.scheduleTranslucencyUpdates:181 (21%), executing JNI.invokePV (3.2%)
       4.1%  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 (16%), executing VertexBuffer._drawWithShader:128 (16%)
       removing this cost entirely: about 718 -> 803 fps
  4. [cpu] xaeroworldmap costs 0.058 ms per frame on the render thread
       6.0% of render-thread CPU time, mostly in no phase, 75% in its own code (rest is vanilla/library code it called)
       96%  xaero.map.events.ClientEventsForge.renderTick:32   <- Minecraft.runTick:1148
               hot: xaero.map.region.BranchLeveledRegion.get:316 (13%), executing BlockAndTintGetter.getBrightness:15 (9.9%)
       removing this cost entirely: about 718 -> 749 fps
  5. [cpu] collections_of_optimizations costs 0.051 ms per frame on the render thread
       5.3% of render-thread CPU time, mostly in world, 88% in its own code (rest is vanilla/library code it called)
       37%  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%)
       15%  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 (63%), executing Level.getChunk:4541 (10%)
       6.6%  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 718 -> 745 fps
  6. [stutter] Stutter: GC pause (G1 Remark/Cleanup, end of a concurrent mark cycle)
       4 frames over 20 ms, worst 40 ms, 192 ms of extra frame time per minute
       allocation 994 MB/s; 25 collections, worst 80 ms
       194 MB/s collections_of_optimizations (20%): com.misanthropy.collections_of_optimizations.core.NbtFastLoad.loadCompound:131 -> Object;
       118 MB/s fastchunkgen (12%): NoiseChunk.lambda$wrap$0:4484 [mixin merged from com.misanthropy.fastchunkgen.opts.worldgen.vanilla.mixin.noise_chunk_wrap.MixinNoiseChunk] -> [D
       99 MB/s lithoform (9.9%): com.misanthropy.lithoform.compat.LandProvinces.province:520 -> [J
       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 144 ms, 185 ms of extra frame time per minute
  8. [cpu] immediatelyfast costs 0.042 ms per frame on the render thread
       4.4% of render-thread CPU time, mostly in world, 35% 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 (69%), executing RenderStateShard.clearRenderState:41 (9.5%)
       16%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:125   <- LevelRenderer.renderLevel:1283
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (40%), executing RenderStateShard.setupRenderState:37 (21%)
       11%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endLastBatch:105   <- LevelRenderer.renderLevel:1228
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (68%), executing GL15C.nglBufferSubData (14%)
       removing this cost entirely: about 718 -> 741 fps
  9. [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)
       100%  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] (49%), executing ASMEventHandler.invoke:55 (27%)
       removing this cost entirely: about 718 -> 738 fps
 10. [cpu] punchy costs 0.035 ms per frame on the render thread
       3.7% of render-thread CPU time, mostly in world, 67% in its own code (rest is vanilla/library code it called)
       82%  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.5%), executing PoseStack.mulPose:50 (6.6%)
       15%  punchy.platform.ForgeClientPlatform.onClientTick:109   <- Minecraft.tick:1875
               hot: punchy.client.render.ToolKindResolver.isFishingRodStack:211 (9.1%), executing StringLatin1.toLowerCase (12%)
       removing this cost entirely: about 718 -> 737 fps

FRAMES
  33,109 frames   p50 1.13 ms   p95 2.88 ms   p99 5.96 ms   worst 144 ms
  per frame:  tasks 0.047 ms  client tick 0.099 ms  render 0.76 ms  present 0.37 ms  other 0.12 ms
  inside those:  swap 0.37 ms  world 0.62 ms  hud 0.098 ms  screen 0.002 ms
  client tick: 3.53 ms per tick, 20.0 ticks per second
  GPU busy per frame (timer queries): p50 0.83 ms   p95 1.54 ms   p99 2.23 ms
  GPU time per pass (mean per frame, each pass also holds what mods drew at the stage before it):
    0.021 ms  2.2%  sky and frame setup   (p95 0.030 ms)
    0.34 ms  36%  solid terrain   (p95 0.61 ms)
    0.021 ms  2.2%  cutout mipped terrain   (p95 0.030 ms)
    0.000 ms  <0.1%  cutout terrain   (p95 0.003 ms)
    0.019 ms  2.1%  entities   (p95 0.047 ms)
    0.024 ms  2.6%  block entities   (p95 0.071 ms)
    0.042 ms  4.5%  translucent terrain   (p95 0.20 ms)
    0.000 ms  <0.1%  tripwire   (p95 0.002 ms)
    0.000 ms  <0.1%  particles   (p95 0.004 ms)
    0.040 ms  4.2%  weather and clouds   (p95 0.065 ms)
    0.000 ms  <0.1%  end of level render   (p95 0.002 ms)
    0.18 ms  19%  hand and post effects   (p95 0.30 ms)
    0.13 ms  14%  hud   (p95 0.20 ms)
    0.12 ms  13%  screens and rest of frame   (p95 0.45 ms)

RENDER THREAD CPU BY MOD (sampled; excludes GPU wait, fps limiter and blocked time)
  8,796 samples: CPU work 69%, GPU wait 31%, limiter 0.0%, blocked on other threads 0.3%
  mods caused 77% of render-thread CPU work, vanilla/forge/driver the rest
  18% 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.15 ms   15%    57%   embeddium                    world
  0.13 ms   14%    87%   minecraft (vanilla)          world
  0.082 ms  8.6%   100%  forge (loader, events)       world
  0.058 ms  6.0%   75%   xaeroworldmap                no phase
  0.051 ms  5.3%   88%   collections_of_optimizations world
  0.042 ms  4.4%   35%   immediatelyfast              world
  0.038 ms  3.9%   25%   gnetum                       hud
  0.035 ms  3.7%   67%   punchy                       world
  0.029 ms  3.1%   25%   linggango_tweaks             world
  0.026 ms  2.8%   50%   flywheel                     world
  0.020 ms  2.1%   11%   whatslaggin                  world
  0.020 ms  2.1%   18%   asyncparticles               world
  0.019 ms  2.0%   16%   oculus                       world
  0.017 ms  1.8%   50%   brute_force_culling_revived  world
  0.013 ms  1.4%   9.6%  let_there_be_atmosphere      world
  0.23 ms   146 more below 0.5% each

HOT PATHS (where each mod's render-thread time goes; SRG names translated; <- = called from)
  embeddium  0.15 ms/frame, 15%
    65%   me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.drawChunkLayer:284  <- LevelRenderer.renderChunkLayer:40702
          hot me.jellysquid.mods.sodium.client.render.chunk.DefaultChunkRenderer.fillCommandBuffer:165 40%
          executing GL32C.nglMultiDrawElementsBaseVertex 26%
    17%   me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.setupTerrain:227  <- LevelRenderer.setupRender:40729
          hot me.jellysquid.mods.sodium.client.render.chunk.RenderSectionManager.scheduleTranslucencyUpdates:181 21%
          executing JNI.invokePV 3.2%
    4.1%  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 16%
          executing VertexBuffer._drawWithShader:128 16%
  minecraft (vanilla)  0.13 ms/frame, 14%, hottest vanilla methods:
    15%   ChunkSkyLightSources.findLowestSourceY:72  <- me.decce.ixeris.RenderThreadStarter.run:39
    8.5%  Entity.shouldRender:1562  <- me.decce.ixeris.RenderThreadStarter.run:39
    7.4%  LevelRenderer.renderLevel:1198  <- me.decce.ixeris.RenderThreadStarter.run:39
          executing Iterators$1.next:146 11%
  xaeroworldmap  0.058 ms/frame, 6.0%
    96%   xaero.map.events.ClientEventsForge.renderTick:32  <- Minecraft.runTick:1148
          hot xaero.map.region.BranchLeveledRegion.get:316 13%
          executing BlockAndTintGetter.getBrightness:15 9.9%
  collections_of_optimizations  0.051 ms/frame, 5.3%
    37%   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%
    15%   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 63%
          executing Level.getChunk:4541 10%
    6.6%  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.042 ms/frame, 4.4%
    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 69%
          executing RenderStateShard.clearRenderState:41 9.5%
    16%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:125  <- LevelRenderer.renderLevel:1283
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 40%
          executing RenderStateShard.setupRenderState:37 21%
    11%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endLastBatch:105  <- LevelRenderer.renderLevel:1228
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 68%
          executing GL15C.nglBufferSubData 14%
  gnetum  0.038 ms/frame, 3.9%
    100%  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] 49%
          executing ASMEventHandler.invoke:55 27%
  punchy  0.035 ms/frame, 3.7%
    82%   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.5%
          executing PoseStack.mulPose:50 6.6%
    15%   punchy.platform.ForgeClientPlatform.onClientTick:109  <- Minecraft.tick:1875
          hot punchy.client.render.ToolKindResolver.isFishingRodStack:211 9.1%
          executing StringLatin1.toLowerCase 12%
  linggango_tweaks  0.029 ms/frame, 3.1%
    26%   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 24%
    25%   com.misanthropy.linggango.linggango_tweaks.client.DynamicCrosshairHandler.onRenderCrosshair:205  <- ForgeGui.gnetum$postEvent:3130 [mixin merged from me.decce.gnetum.mixins.ForgeGuiMixin]
          executing GL20C.glUseProgram 17%
    15%   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 48%
          executing GL11C.glBindTexture 15%

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

STUTTERS (frames over 20 ms, grouped by what was happening during them)
  frames  worst     extra/min   cause
  25      81 ms     1.2 s       GC pause (G1 Young Generation)
  4       40 ms     192 ms      GC pause (G1 Remark/Cleanup, end of a concurrent mark cycle)
  1       144 ms    185 ms      flywheel: dev.engine_room.flywheel.impl.task.WaitGroup.await
  1       27 ms     34 ms       unexplained (client tick)
  1       24 ms     30 ms       flywheel: dev.engine_room.flywheel.backend.compile.core.Compilation.compile
  1       24 ms     30 ms       vanilla minecraft: ChunkSkyLightSources.findLowestSourceY
  1       23 ms     28 ms       unexplained (render)

  worst frames:
  05:06:27.960  144 ms   render 143 ms         flywheel: dev.engine_room.flywheel.impl.task.WaitGroup.await
                             28 of 28 samples, hottest line dev.engine_room.flywheel.impl.task.WaitGroup.await:42
  05:06:26.106  81 ms    render 0.46 ms        GC pause (G1 Young Generation)
                             79 ms of the frame was a stop-the-world collection
  05:06:25.968  73 ms    present 73 ms         GC pause (G1 Young Generation)
                             73 ms of the frame was a stop-the-world collection
  05:06:01.265  62 ms    render 61 ms          GC pause (G1 Young Generation)
                             58 ms of the frame was a stop-the-world collection
  05:06:15.412  59 ms    render 57 ms          GC pause (G1 Young Generation)
                             54 ms of the frame was a stop-the-world collection
  05:06:39.262  53 ms    render 0.67 ms        GC pause (G1 Young Generation)
                             52 ms of the frame was a stop-the-world collection
  05:06:39.890  52 ms    render 51 ms          GC pause (G1 Young Generation)
                             49 ms of the frame was a stop-the-world collection
  05:06:01.684  46 ms    present 45 ms         GC pause (G1 Young Generation)
                             44 ms of the frame was a stop-the-world collection
  05:06:28.496  42 ms    render 41 ms          GC pause (G1 Young Generation)
                             39 ms of the frame was a stop-the-world collection
  05:06:33.807  42 ms    render 41 ms          GC pause (G1 Young Generation)
                             39 ms of the frame was a stop-the-world collection

MEMORY AND GC
  allocated 44.9 GB (994 MB/s, exact, all threads), max heap 10.0 GB
  25 GC pauses (0 old/full), 896 ms paused (1.9%), worst 80 ms, one every 1.8 s
  longest pauses:
    05:06:26.105  80 ms  G1 Young Generation, G1 Evacuation Pause
    05:06:25.968  73 ms  G1 Young Generation, G1 Evacuation Pause
    05:06:01.263  58 ms  G1 Young Generation, G1 Evacuation Pause
    05:06:15.408  55 ms  G1 Young Generation, G1 Evacuation Pause
    05:06:39.262  52 ms  G1 Young Generation, G1 Evacuation Pause
    05:06:39.888  49 ms  G1 Young Generation, G1 Evacuation Pause
    05:06:01.683  45 ms  G1 Young Generation, G1 Evacuation Pause
    05:06:28.494  40 ms  G1 Young Generation, G1 Evacuation Pause
  8 Remark/Cleanup pauses (concurrent mark cycles, not in the count above), 148 ms paused, worst 36 ms
  heap after GC 5.4 GB (54% of max, old garbage stays until the next marking cycle), changed by -2139948112 B over the recording
  by mod (JFR samples scaled to each thread's exact allocation; 99% of bytes covered):
    194 MB/s  20%    collections_of_optimizations 1,544 samples
        11%  com.misanthropy.collections_of_optimizations.core.NbtFastLoad.loadCompound:131 -> Object;
        8.6%  com.misanthropy.collections_of_optimizations.core.FeaturePlacement.step:63 -> BlockPos
        8.4%  com.misanthropy.collections_of_optimizations.core.NbtFastLoad.loadCompound:131 -> Object2ObjectOpenHashMap
    118 MB/s  12%    fastchunkgen              628 samples
        10%  NoiseChunk.lambda$wrap$0:4484 [mixin merged from com.misanthropy.fastchunkgen.opts.worldgen.vanilla.mixin.noise_chunk_wrap.MixinNoiseChunk] -> [D
        7.2%  ChunkHolder.beforeTick:4520 [mixin handler from com.misanthropy.fastchunkgen.fixes.chunkio.threading_issues.mixin.MixinChunkHolder] -> [J
        6.6%  ChunkMap.lambda$scheduleChunkLoad$3:15032 [mixin merged from com.misanthropy.fastchunkgen.threading.chunkio.mixin.MixinThreadedAnvilChunkStorage] -> DataResult
    99 MB/s   9.9%   lithoform                 436 samples
        12%  com.misanthropy.lithoform.compat.LandProvinces.province:520 -> [J
        11%  com.misanthropy.lithoform.compat.LandProvinces.province:519 -> Climate$TargetPoint
        9.2%  com.misanthropy.lithoform.bowl.Special3D.fillArray:23 -> DensityFunctions$Spline$Point
    98 MB/s   9.9%   minecraft (vanilla)       2,993 samples
        8.1%  LevelRenderer.getLightColor:2983 -> CallbackInfoReturnable
        6.7%  LevelRenderer.getLightColor:2983 -> Integer
    54 MB/s   5.4%   xaeroworldmap             158 samples
        26%  xaero.map.file.worldsave.WorldDataReader.lambda$buildRegion$1:150 -> DataResult
        11%  xaero.map.file.worldsave.WorldDataReader.lambda$buildRegion$1:150 -> Either$Left
        8.9%  xaero.map.file.worldsave.WorldDataReader.lambda$buildRegion$1:150 -> [J
    53 MB/s   5.4%   radium                    247 samples
        62%  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
        8.7%  LevelChunkSection.setBlockStateNoLocking:521 [mixin redirect from me.jellysquid.mods.lithium.mixin.chunk.no_locking.ChunkSectionMixin] -> CallbackInfoReturnable
    39 MB/s   4.0%   terrablender              172 samples
        86%  terrablender.worldgen.surface.NamespacedSurfaceRuleSource$NamespacedRule.tryApply -> 956925247
    32 MB/s   3.3%   linggango_tweaks          283 samples
        16%  com.misanthropy.linggango.linggango_tweaks.tweak.streams.WaterSolver.levels:204 -> [J
    31 MB/s   3.1%   embeddium                 861 samples
        31%  me.jellysquid.mods.sodium.client.world.biome.BiomeColorCache.updateColorBuffers:100 -> 1203909268
        12%  me.jellysquid.mods.sodium.client.world.biome.BiomeColorCache.updateColorBuffers:100 -> 514651080
        12%  org.embeddedt.embeddium.render.chunk.sorting.TranslucentQuadAnalyzer.captureQuad:187 -> [F
    29 MB/s   2.9%   modernfix                 150 samples
        44%  org.embeddedt.modernfix.world.gen.PrefetchingBlockColumn.setBlock:113 -> CallbackInfoReturnable
        14%  org.embeddedt.modernfix.structure.CachingStructureManager.readStructure:39 -> BlockPos
        7.8%  org.embeddedt.modernfix.structure.CachingStructureManager.readStructure:39 -> Object;

INTEGRATED SERVER (single player; this is world lag, not FPS)
  916 ticks, mspt mean 12 ms, p50 10 ms, p95 21 ms, worst 126 ms, 7 over 50 ms
    2.71 ms/tick  22%    minecraft (vanilla)       
    1.06 ms/tick  8.7%   collections_of_optimizations ServerLevel.coo$growthTick:10142 [mixin modifyExpressionValue from com.misanthropy.collections_of_optimizations.mixin.immersiveweathering.MixinServerLevelGrowthTick]
    0.61 ms/tick  5.0%   radium                    EntitySectionStorage.forEachInBox:555 [mixin handler from me.jellysquid.mods.lithium.mixin.entity.fast_retrieval.SectionedEntityCacheMixin]
    0.59 ms/tick  4.9%   forge (loader, events)    
    0.53 ms/tick  4.3%   mowziesmobs               com.bobmowzie.mowziesmobs.server.entity.elokosa.EntityElokosaFollowerToHowler.tick:29
    0.44 ms/tick  3.6%   alexsmobs                 com.github.alexthe666.alexsmobs.entity.EntityLeafcutterAnt.tick:260
    0.32 ms/tick  2.6%   terramity                 net.mcreator.terramity.entity.GreenFairyEntity.aiStep:213
    0.30 ms/tick  2.4%   eeeabsmobs                com.eeeab.eeeabsmobs.sever.entity.mob.relicron.EntityRelicObserver.tick:174

THREADS (exact CPU per thread group; 'runs' = what JFR saw executing on it)
  the game used 6.56 of 16 cores, whole machine 69% busy
  cores  n    allocated   group                            runs
  3.42   17   20.8 GB     FastChunkGen worker ##           lithoform 51%, collections_of_optimizations 13%, fastchunkgen 12%
  0.68   1    4.1 GB      Render thread                    xaeroworldmap 14%, minecraft 14%, collections_of_optimizations 11%
  0.64   15   7.1 GB      ForkJoinPool.commonPool-worker-# lithoform 58%, collections_of_optimizations 10%, integrated_api 8.6%
  0.47   10   2.3 GB      Chunk Render Task Executor ##    embeddium 43%, minecraft 33%, linggango_tweaks 12%
  0.39   1    1.3 GB      Linggango Streams                lithoform 66%, linggango_tweaks 30%
  0.35   1    6.9 GB      Server thread                    minecraft 30%, xaeroworldmap 7.6%, collections_of_optimizations 6.9%
  0.17   10   60 MB       Flywheel Task Executor ##        collections_of_optimizations 64%, flywheel 35%
  0.13   6    179 MB      Lumenite light #                 lumenite 99%
  0.05   15   46 MB       Worker-Main-#                    too few samples
  0.03   21   149 MB      Thread-#                         minecraft 53%, xaeroworldmap 41%
  0.03   1    530 MB      minecraft_overworld - Light      lumenite 62%, minecraft 36%
  0.03   1    222 KB      spark-monitoring-thread          too few samples

ENTITIES, BLOCK ENTITIES, SCREENS (exact timings; per second of recording)
  entity render:
    6.66 ms/s  178/s    37 us    alexsmobs:kangaroo                          worst 3.26 ms at -3270, 173, 776
    4.14 ms/s  143/s    29 us    alexsmobs:emu                               worst 31 ms at -3331, 157, 801
    2.76 ms/s  31/s     89 us    ars_nouveau:whirlisprig                     worst 36 ms at -3298, 178, 805
    2.53 ms/s  68/s     37 us    hexerei:crow                                worst 2.71 ms at -3240, 191, 788
  block entity render:
    0.62 ms/s  5,189/s  0 us     minecraft:brushable_block                   worst 0.23 ms at -3518, 64, 900
  entity tick:
    14 ms/s    20/s     712 us   minecraft:player                            worst 21 ms at -3255, 200, 777
    1.51 ms/s  20/s     76 us    alexsmobs:anteater                          worst 2.74 ms at -3578, 71, 715
    0.98 ms/s  26/s     37 us    terramity:green_fairy                       worst 0.51 ms at -3196, 218, 780
  block entity tick:
    0.56 ms/s  403/s    1 us     minecraft:campfire                          worst 0.19 ms at 545, 3, 806
    0.50 ms/s  1,272/s  0 us     lootr:lootr_chest                           worst 0.38 ms at -3036, 0, 781
  server entity tick:
    15 ms/s    245/s    60 us    terramity:green_fairy                       worst 3.24 ms at -3958, 148, 851
    8.55 ms/s  81/s     105 us   alexsmobs:leafcutter_ant                    worst 36 ms at -3270, 160, 736
    6.39 ms/s  61/s     105 us   eeeabsmobs:relic_observer                   worst 0.76 ms at -3302, 15, 686
    6.02 ms/s  348/s    17 us    minecraft:item                              worst 5.10 ms at -4065, -15, 757
    3.83 ms/s  34/s     112 us   eeeabsmobs:relic_ripper                     worst 3.49 ms at -3320, 8, 695
    3.76 ms/s  34/s     111 us   minecraft:chicken                           worst 56 ms at -3554, 89, 785
    3.29 ms/s  13/s     252 us   minecraft:player                            worst 3.54 ms at -3310, 200, 777
    2.76 ms/s  22/s     128 us   alexsmobs:anteater                          worst 2.42 ms at -3931, 105, 807
  screen:
    1.12 ms/s  19/s     59 us    net.minecraft.client.gui.screens.ChatScreen worst 5.17 ms

JVM AND I/O
  class loads over 1 ms: 21 (62 ms), on the render/server thread 6 (15 ms)
  non-GC safepoints: 9.99 ms total (last: ThreadDump)
  log output: 0.6 lines/s
  exceptions thrown: 36.8/s, top: 2.2/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;  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;  
  lithoform 2.0.0-alpha13;  ;  flywheel 1.0.5;  

RECORDING
  stack sampler every 5 ms: 8,796 render-thread, 2,008 server-thread samples (server only while ticking)
  JFR on (cpu, allocation, locks, file io, class loading, safepoints, exceptions): 15,110 CPU samples, 12,524 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
