WhatsLaggin report (manual)  30.9 s recorded, ended 2026-10-23 05:04:29
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, 127 entities loaded

VERDICT
  1002 fps average (1.00 ms per frame), 1% low 225 fps, 0.1% low 99 fps.
  BALANCED: 0.61 ms CPU plus 0.38 ms waiting on the GPU per frame. Cuts on either side help.
  4 stutters over 20 ms (7.8 per minute), worst 38 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.00 ms frame waits on the GPU
       Both CPU and GPU cuts help here. CPU work: 0.61 ms per frame.
       Biggest GPU levers: render distance (12), resolution (3440x1440), graphics mode (fancy)
  2. [cpu] embeddium costs 0.057 ms per frame on the render thread
       9.5% of render-thread CPU time, mostly in world, 50% in its own code (rest is vanilla/library code it called)
       69%  me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.drawChunkLayer:284   <- LevelRenderer.renderChunkLayer:40702
               hot: me.jellysquid.mods.sodium.client.render.chunk.DefaultChunkRenderer.fillCommandBuffer:165 (36%), executing GL32C.nglMultiDrawElementsBaseVertex (26%)
       7.6%  me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.setupTerrain:238   <- LevelRenderer.setupRender:40729
               hot: me.jellysquid.mods.sodium.client.render.texture.SpriteUtil.markSpriteActive:22 (59%), executing Long2ReferenceOpenHashMap$MapIterator.nextEntry:662 (3.7%)
       7.6%  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 (44%), executing FogRenderer$MobEffectFogFunction.isEnabled:350 (22%)
       removing this cost entirely: about 1002 -> 1063 fps
  3. [cpu] collections_of_optimizations costs 0.039 ms per frame on the render thread
       6.4% of render-thread CPU time, mostly in world, 83% in its own code (rest is vanilla/library code it called)
       40%  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%)
       10%  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:142 (42%), executing Level.getGameTime:729 (46%)
       8.0%  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 1002 -> 1043 fps
  4. [cpu] immediatelyfast costs 0.038 ms per frame on the render thread
       6.3% of render-thread CPU time, mostly in world, 31% in its own code (rest is vanilla/library code it called)
       51%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:116   <- ItemInHandRenderer.m_109314_$mixinextras$wrapped$96:327
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (79%), executing RenderStateShard.setupRenderState:37 (10%)
       19%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:125   <- LevelRenderer.renderLevel:1283
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (47%), executing RenderStateShard.setupRenderState:37 (29%)
       15%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endLastBatch:105   <- LevelRenderer.renderLevel:1338
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (71%), executing RenderStateShard.clearRenderState:41 (14%)
       removing this cost entirely: about 1002 -> 1042 fps
  5. [cpu] linggango_tweaks costs 0.033 ms per frame on the render thread
       5.6% of render-thread CPU time, mostly in world, 22% in its own code (rest is vanilla/library code it called)
       24%  snownee.jade.util.ClientProxy.lambda$init$0:113   <- ForgeGui.gnetum$postEvent:3138 [mixin merged from me.decce.gnetum.mixins.ForgeGuiMixin]
               hot: snownee.jade.overlay.DisplayHelper.drawText:429 (24%), executing VertexConsumer.color:47 (30%)
       21%  com.misanthropy.linggango.linggango_tweaks.lumalight.LumalightClient.onRenderLevel:91   <- GameRenderer.renderLevel:1128
               hot: com.misanthropy.linggango.linggango_tweaks.lumalight.PostEffectRenderer.draw:210 (27%), executing GL45C.glBlitNamedFramebuffer (27%)
       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 (48%), executing GL30C.glBindFramebuffer (19%)
       removing this cost entirely: about 1002 -> 1037 fps
  6. [stutter] Stutter: GC pause (G1 Young Generation)
       3 frames over 20 ms, worst 38 ms, 193 ms of extra frame time per minute
       allocation 240 MB/s; 3 collections, worst 37 ms
       37 MB/s lithoform (16%): NoiseChunk.lithoform$sharedScan:3507 [mixin handler from com.misanthropy.lithoform.mixin.PreliminarySurfaceMixin] -> DensityFunctions$Spline$Point
       29 MB/s collections_of_optimizations (12%): com.misanthropy.collections_of_optimizations.core.NbtFastLoad.loadCompound:131 -> Object;
       26 MB/s minecraft (11%): Vec3.add:96 -> Vec3
       Fix: cut allocation at the sites above (reuse objects, avoid streams/boxing in per-tick code).
  7. [cpu] punchy costs 0.027 ms per frame on the render thread
       4.5% of render-thread CPU time, mostly in world, 69% in its own code (rest is vanilla/library code it called)
       88%  ItemInHandRenderer.punchy$renderFirstPersonModel:1160 [mixin handler from punchy.mixin.client.ItemInHandRendererMixin]   <- ItemInHandRenderer.m_109314_$mixinextras$wrapped$96
               hot: punchy.client.state.MovementStateMachine.beginRenderSample:413 (5.4%), executing PoseStack.mulPose:50 (4.1%)
       10%  punchy.platform.ForgeClientPlatform.onClientTick:109   <- Minecraft.tick:1875
               hot: punchy.client.state.CrossbowStateMachine.handleShot:148 (5.9%), executing ItemStack.getItem:217 (12%)
       removing this cost entirely: about 1002 -> 1030 fps
  8. [cpu] gnetum costs 0.024 ms per frame on the render thread
       4.0% of render-thread CPU time, mostly in hud, 28% 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] (48%), executing ASMEventHandler.invoke:55 (25%)
       removing this cost entirely: about 1002 -> 1027 fps

FRAMES
  30,930 frames   p50 0.88 ms   p95 1.39 ms   p99 3.47 ms   worst 38 ms
  per frame:  tasks 0.007 ms  client tick 0.055 ms  render 0.52 ms  present 0.39 ms  other 0.034 ms
  inside those:  swap 0.38 ms  world 0.40 ms  hud 0.089 ms  screen 0.003 ms
  client tick: 2.71 ms per tick, 20.2 ticks per second
  GPU busy per frame (timer queries): p50 0.66 ms   p95 0.91 ms   p99 1.18 ms
  GPU time per pass (mean per frame, each pass also holds what mods drew at the stage before it):
    0.022 ms  3.1%  sky and frame setup   (p95 0.024 ms)
    0.22 ms  31%  solid terrain   (p95 0.32 ms)
    0.018 ms  2.6%  cutout mipped terrain   (p95 0.020 ms)
    0.000 ms  <0.1%  cutout terrain   (p95 0.002 ms)
    0.017 ms  2.5%  entities   (p95 0.021 ms)
    0.000 ms  <0.1%  block entities   (p95 0.002 ms)
    0.002 ms  0.3%  translucent terrain   (p95 0.10 ms)
    0.000 ms  <0.1%  tripwire   (p95 0.002 ms)
    0.004 ms  0.6%  particles   (p95 0.004 ms)
    0.023 ms  3.3%  weather and clouds   (p95 0.024 ms)
    0.000 ms  <0.1%  end of level render   (p95 0.001 ms)
    0.19 ms  27%  hand and post effects   (p95 0.20 ms)
    0.12 ms  17%  hud   (p95 0.13 ms)
    0.090 ms  13%  screens and rest of frame   (p95 0.15 ms)

RENDER THREAD CPU BY MOD (sampled; excludes GPU wait, fps limiter and blocked time)
  6,163 samples: CPU work 60%, GPU wait 40%, limiter 0.0%, blocked on other threads 0.0%
  mods caused 77% of render-thread CPU work, vanilla/forge/driver the rest
  20% of CPU work is inside OpenGL calls (driver work or a GPU sync), mostly glQueryCounter; the mod that made the call is charged for it below
  ms/frame  share  own   mod                          mostly in
  0.072 ms  12%    80%   minecraft (vanilla)          world
  0.065 ms  11%    100%  forge (loader, events)       world
  0.057 ms  9.5%   50%   embeddium                    world
  0.039 ms  6.4%   83%   collections_of_optimizations world
  0.038 ms  6.3%   31%   immediatelyfast              world
  0.033 ms  5.6%   22%   linggango_tweaks             world
  0.027 ms  4.5%   69%   punchy                       world
  0.024 ms  4.0%   28%   gnetum                       hud
  0.021 ms  3.5%   11%   oculus                       world
  0.018 ms  2.9%   10%   asyncparticles               world
  0.017 ms  2.8%   5.9%  whatslaggin                  world
  0.012 ms  2.0%   15%   let_there_be_atmosphere      world
  0.009 ms  1.5%   62%   brute_force_culling_revived  world
  0.009 ms  1.5%   81%   xaerominimap                 client tick
  0.008 ms  1.3%   29%   xaerolib                     hud
  0.15 ms   134 more below 0.5% each

HOT PATHS (where each mod's render-thread time goes; SRG names translated; <- = called from)
  minecraft (vanilla)  0.072 ms/frame, 12%, hottest vanilla methods:
    15%   Entity.shouldRender:1562  <- me.decce.ixeris.RenderThreadStarter.run:39
    15%   EntityRenderDispatcher.getRenderer:530  <- me.decce.ixeris.RenderThreadStarter.run:39
    11%   LevelRenderer.renderLevel:1198  <- me.decce.ixeris.RenderThreadStarter.run:39
          executing Iterators$1.next:146 12%
  embeddium  0.057 ms/frame, 9.5%
    69%   me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.drawChunkLayer:284  <- LevelRenderer.renderChunkLayer:40702
          hot me.jellysquid.mods.sodium.client.render.chunk.DefaultChunkRenderer.fillCommandBuffer:165 36%
          executing GL32C.nglMultiDrawElementsBaseVertex 26%
    7.6%  me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.setupTerrain:238  <- LevelRenderer.setupRender:40729
          hot me.jellysquid.mods.sodium.client.render.texture.SpriteUtil.markSpriteActive:22 59%
          executing Long2ReferenceOpenHashMap$MapIterator.nextEntry:662 3.7%
    7.6%  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 44%
          executing FogRenderer$MobEffectFogFunction.isEnabled:350 22%
  collections_of_optimizations  0.039 ms/frame, 6.4%
    40%   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%
    10%   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:142 42%
          executing Level.getGameTime:729 46%
    8.0%  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%
  immediatelyfast  0.038 ms/frame, 6.3%
    51%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:116  <- ItemInHandRenderer.m_109314_$mixinextras$wrapped$96:327
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 79%
          executing RenderStateShard.setupRenderState:37 10%
    19%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:125  <- LevelRenderer.renderLevel:1283
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 47%
          executing RenderStateShard.setupRenderState:37 29%
    15%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endLastBatch:105  <- LevelRenderer.renderLevel:1338
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 71%
          executing RenderStateShard.clearRenderState:41 14%
  linggango_tweaks  0.033 ms/frame, 5.6%
    24%   snownee.jade.util.ClientProxy.lambda$init$0:113  <- ForgeGui.gnetum$postEvent:3138 [mixin merged from me.decce.gnetum.mixins.ForgeGuiMixin]
          hot snownee.jade.overlay.DisplayHelper.drawText:429 24%
          executing VertexConsumer.color:47 30%
    21%   com.misanthropy.linggango.linggango_tweaks.lumalight.LumalightClient.onRenderLevel:91  <- GameRenderer.renderLevel:1128
          hot com.misanthropy.linggango.linggango_tweaks.lumalight.PostEffectRenderer.draw:210 27%
          executing GL45C.glBlitNamedFramebuffer 27%
    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 48%
          executing GL30C.glBindFramebuffer 19%
  punchy  0.027 ms/frame, 4.5%
    88%   ItemInHandRenderer.punchy$renderFirstPersonModel:1160 [mixin handler from punchy.mixin.client.ItemInHandRendererMixin]  <- ItemInHandRenderer.m_109314_$mixinextras$wrapped$96
          hot punchy.client.state.MovementStateMachine.beginRenderSample:413 5.4%
          executing PoseStack.mulPose:50 4.1%
    10%   punchy.platform.ForgeClientPlatform.onClientTick:109  <- Minecraft.tick:1875
          hot punchy.client.state.CrossbowStateMachine.handleShot:148 5.9%
          executing ItemStack.getItem:217 12%
  gnetum  0.024 ms/frame, 4.0%
    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] 48%
          executing ASMEventHandler.invoke:55 25%
  oculus  0.021 ms/frame, 3.5%
    25%   GlStateManager.iris$modify:2835 [mixin redirect from net.irisshaders.iris.mixin.MixinGlStateManager_DepthColorOverride]  <- GlStateManager._drawElements:718
          executing GL11C.nglDrawElements 100%
    21%   LevelRenderer.iris$renderTranslucentAfterDeferred:18140 [mixin redirect from net.irisshaders.iris.mixin.fantastic.MixinLevelRenderer]  <- LevelRenderer.renderLevel:1381
          hot ParticleEngine.lambda$iris$selectParticlesToRender$0:6181 [mixin merged from net.irisshaders.iris.mixin.fantastic.MixinParticleEngine] 15%
          executing RegularImmutableSet.contains:64 15%
    19%   GameRenderer.iris$disableVanillaHandRendering:8534 [mixin redirect from net.irisshaders.iris.mixin.MixinGameRenderer]  <- GameRenderer.renderItemInHand:852
          hot GlStateManager.iris$modify:2835 [mixin redirect from net.irisshaders.iris.mixin.MixinGlStateManager_DepthColorOverride] 8.0%
          executing ASMEventHandler.invoke:55 32%

STUTTERS (frames over 20 ms, grouped by what was happening during them)
  frames  worst     extra/min   cause
  3       38 ms     193 ms      GC pause (G1 Young Generation)

  worst frames:
  05:04:03.400  38 ms    client tick 35 ms     GC pause (G1 Young Generation)
                             31 ms of the frame was a stop-the-world collection
  05:04:08.826  38 ms    present 37 ms         GC pause (G1 Young Generation)
                             37 ms of the frame was a stop-the-world collection
  05:04:25.187  26 ms    client tick 25 ms     GC pause (G1 Young Generation)
                             21 ms of the frame was a stop-the-world collection

MEMORY AND GC
  allocated 7.3 GB (240 MB/s, exact, all threads), max heap 10.0 GB
  3 GC pauses (0 old/full), 89 ms paused (0.3%), worst 37 ms, one every 10.3 s
  longest pauses:
    05:04:08.825  37 ms  G1 Young Generation, G1 Evacuation Pause
    05:04:03.396  31 ms  G1 Young Generation, G1 Evacuation Pause
    05:04:25.183  21 ms  G1 Young Generation, G1 Evacuation Pause
  heap after GC 5.2 GB (52% of max, old garbage stays until the next marking cycle), changed by 71 MB over the recording
  by mod (JFR samples scaled to each thread's exact allocation; 98% of bytes covered):
    37 MB/s   16%    lithoform                 568 samples
        22%  NoiseChunk.lithoform$sharedScan:3507 [mixin handler from com.misanthropy.lithoform.mixin.PreliminarySurfaceMixin] -> DensityFunctions$Spline$Point
        14%  com.misanthropy.lithoform.bowl.Special3D.fillArray:23 -> DensityFunctions$Spline$Point
        11%  com.misanthropy.lithoform.bowl.Special3D.compute:18 -> DensityFunctions$Spline$Point
    29 MB/s   12%    collections_of_optimizations 1,179 samples
        21%  com.misanthropy.collections_of_optimizations.core.NbtFastLoad.loadCompound:131 -> Object;
        13%  com.misanthropy.collections_of_optimizations.core.NbtFastLoad.loadCompound:131 -> Object2ObjectOpenHashMap
        8.7%  com.misanthropy.collections_of_optimizations.core.NbtFastLoad.loadList:191 -> ArrayList
    26 MB/s   11%    minecraft (vanilla)       495 samples
        3.3%  Vec3.add:96 -> Vec3
    20 MB/s   8.4%   linggango_tweaks          249 samples
        10%  com.misanthropy.linggango.linggango_tweaks.tweak.streams.WaterSolver.levels:204 -> [J
        6.3%  snownee.jade.overlay.DisplayHelper.drawText:429 -> CallbackInfoReturnable
        5.6%  snownee.jade.overlay.DisplayHelper.drawText:429 -> 425570869
    14 MB/s   5.8%   immediatelyfast           98 samples
        19%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.lambda$addNewFallbackBuffer$1:188 -> [J
        10%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.lambda$addNewFallbackBuffer$1:188 -> Object;
        8.2%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.getBuffer:84 -> CallbackInfoReturnable
    10 MB/s   4.3%   fastchunkgen              177 samples
        70%  NoiseChunk.lambda$wrap$0:4484 [mixin merged from com.misanthropy.fastchunkgen.opts.worldgen.vanilla.mixin.noise_chunk_wrap.MixinNoiseChunk] -> [D
    10 MB/s   4.1%   punchy                    70 samples
        7.1%  punchy.client.render.ToolKindResolver.isFishingRodStack:211 -> CallbackInfoReturnable
        5.7%  LevelRenderer.punchy$renderReleasedItemParticles:12607 [mixin handler from punchy.mixin.client.LevelRendererMixin] -> Object;
    7 MB/s    2.9%   embeddium                 232 samples
        16%  BufferBuilder.onFormatChanged:5580 [mixin handler from me.jellysquid.mods.sodium.mixin.core.render.immediate.consumer.BufferBuilderMixin] -> SodiumBufferBuilder
        12%  me.jellysquid.mods.sodium.client.render.chunk.ChunkRenderMatrices.from:11 -> Matrix4f
        8.1%  GameRenderer.onRender:30142 [mixin handler from me.jellysquid.mods.sodium.mixin.features.gui.hooks.console.GameRendererMixin] -> Object;
    6 MB/s    2.3%   castle_dungeons           89 samples
        12%  net.puffish.castlemod.generator.Castle.verifyPlacement:313 -> StreamSpliterators$WrappingSpliterator
        11%  net.puffish.castlemod.generator.Castle.verifyPlacement:293 -> Object;
        9.3%  net.puffish.castlemod.generator.CastleMetrics.lambda$streamPositionsInCustomBounds$1:45 -> IntPipeline$Head
    5 MB/s    2.3%   modernfix                 79 samples
        23%  org.embeddedt.modernfix.structure.CachingStructureManager.readStructure:39 -> StructureTemplate$StructureBlockInfo
        23%  org.embeddedt.modernfix.structure.CachingStructureManager.readStructure:39 -> BlockPos
        14%  org.embeddedt.modernfix.structure.CachingStructureManager.toBytes:129 -> [B

INTEGRATED SERVER (single player; this is world lag, not FPS)
  624 ticks, mspt mean 7.54 ms, p50 6.68 ms, p95 12 ms, worst 51 ms, 1 over 50 ms
    1.20 ms/tick  16%    minecraft (vanilla)       
    0.69 ms/tick  9.2%   collections_of_optimizations ServerLevel.coo$growthTick:10142 [mixin modifyExpressionValue from com.misanthropy.collections_of_optimizations.mixin.immersiveweathering.MixinServerLevelGrowthTick]
    0.62 ms/tick  8.3%   forge (loader, events)    
    0.29 ms/tick  3.8%   radium                    ServerLevel.redirectBlockStateTick:4159 [mixin redirect from me.jellysquid.mods.lithium.mixin.alloc.chunk_random.ServerWorldMixin]
    0.24 ms/tick  3.1%   born_in_chaos_v1          net.mcreator.borninchaosv.entity.CorpseFishEntity.baseTick:197
    0.22 ms/tick  2.9%   ending_library            Level.guardEntityTick:14052 [mixin handler from com.mega.endinglib.mixin.time.time.LevelMixin]
    0.20 ms/tick  2.7%   relics                    Entity.fluidCollision:46621 [mixin localvar from it.hurts.sskirillss.relics.mixin.EntityMixin]
    0.18 ms/tick  2.3%   linggango_tweaks          com.misanthropy.linggango.linggango_tweaks.echelon.EchelonEvents.onPlayerTick:300

THREADS (exact CPU per thread group; 'runs' = what JFR saw executing on it)
  the game used 1.59 of 16 cores, whole machine 27% busy
  cores  n    allocated   group                            runs
  0.63   1    2.8 GB      Render thread                    collections_of_optimizations 16%, minecraft 12%, punchy 10%
  0.27   15   2.8 GB      ForkJoinPool.commonPool-worker-# lithoform 61%, collections_of_optimizations 11%, integrated_api 8.1%
  0.25   10   44 MB       Flywheel Task Executor ##        collections_of_optimizations 64%, flywheel 36%
  0.17   1    532 MB      Linggango Streams                lithoform 57%, linggango_tweaks 40%
  0.16   1    845 MB      Server thread                    minecraft 27%, collections_of_optimizations 6.9%
  0.02   1    155 KB      spark-monitoring-thread          no JFR samples (idle or native)

ENTITIES, BLOCK ENTITIES, SCREENS (exact timings; per second of recording)
  entity tick:
    9.72 ms/s  20/s     481 us   minecraft:player                            worst 1.64 ms at 2527, 68, 778
    1.55 ms/s  40/s     38 us    crittersandcompanions:ferret                worst 0.45 ms at 2509, 68, 738
    0.73 ms/s  40/s     18 us    ars_nouveau:starbuncle                      worst 0.50 ms at 2512, 72, 698
  server entity tick:
    10 ms/s    63/s     161 us   born_in_chaos_v1:corpse_fish                worst 0.56 ms at 2512, 49, 842
    8.89 ms/s  232/s    38 us    terramity:green_fairy                       worst 0.67 ms at 2512, -18, 831
    6.84 ms/s  296/s    23 us    minecraft:creeper                           worst 0.84 ms at 2562, 29, 715
    6.42 ms/s  217/s    30 us    minecraft:skeleton                          worst 1.15 ms at 2494, -29, 843
    4.82 ms/s  76/s     64 us    minecraft:zombie                            worst 0.57 ms at 2565, -32, 745
    2.91 ms/s  102/s    28 us    opposing_force:hanging_spider               worst 0.97 ms at 2501, -38, 829
    2.47 ms/s  72/s     34 us    minecraft:enderman                          worst 0.43 ms at 2578, -25, 745
    2.43 ms/s  75/s     32 us    primitive_mobs:goblin                       worst 0.87 ms at 2499, -38, 830
  screen:
    3.25 ms/s  36/s     89 us    net.minecraft.client.gui.screens.ChatScreen worst 0.46 ms

JVM AND I/O
  class loads over 1 ms: 5 (17 ms), on the render/server thread 2 (10 ms)
  non-GC safepoints: 8.26 ms total (last: ThreadDump)
  log output: 0.5 lines/s
  exceptions thrown: 8.6/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;  collections_of_optimizations 5.6;  immediatelyfast 1.5.5+1.20.4;  
  linggango_tweaks 7.39;  punchy 2.8c;  gnetum 2.5.1+1.20.1-forge;  lithoform 2.0.0-alpha13;  ;  

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