WhatsLaggin report (manual)  1m06s recorded, ended 2026-10-22 15:18:59
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 16, simulation 7, graphics fancy, shaders off
World minecraft:overworld, 5 entities loaded

VERDICT
  1057 fps average (0.95 ms per frame), 1% low 135 fps, 0.1% low 51 fps.
  BALANCED: 0.63 ms CPU plus 0.32 ms waiting on the GPU per frame. Cuts on either side help.
  20 stutters over 20 ms (18.1 per minute), worst 54 ms. Biggest cause: unexplained (present).

WHAT TO FIX (ranked by time lost per second of play)
  1. [gpu] Partly GPU-bound: 0.32 ms of each 0.95 ms frame waits on the GPU
       Both CPU and GPU cuts help here. CPU work: 0.63 ms per frame.
       Biggest GPU levers: render distance (16), resolution (3440x1440), graphics mode (fancy)
  2. [cpu] xaeroworldmap costs 0.066 ms per frame on the render thread
       11% of render-thread CPU time, mostly in no phase, 44% in its own code (rest is vanilla/library code it called)
       100%  xaero.map.events.ClientEventsForge.renderTick:32   <- Minecraft.runTick:1148
               hot: xaero.map.MapWriter.loadPixel:752 (34%), executing BlockAndTintGetter.getBrightness:15 (22%)
       removing this cost entirely: about 1057 -> 1136 fps
  3. [cpu] embeddium costs 0.040 ms per frame on the render thread
       6.7% of render-thread CPU time, mostly in world, 35% in its own code (rest is vanilla/library code it called)
       46%  me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.drawChunkLayer:284   <- LevelRenderer.renderChunkLayer:40702
               hot: me.jellysquid.mods.sodium.client.render.chunk.terrain.TerrainRenderPass.startDrawing:62 (31%), executing GL32C.nglMultiDrawElementsBaseVertex (13%)
       13%  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 (29%), executing GL20C.glUseProgram (16%)
       8.3%  ShaderInstance.uploadUniforms:4132 [mixin redirect from me.jellysquid.mods.sodium.mixin.features.shader.uniform.ShaderProgramMixin]   <- ShaderInstance.apply:369
               hot: Uniform.sodium$matchesLastUpload:2184 [mixin merged from me.jellysquid.mods.sodium.mixin.features.shader.uniform.UniformMixin] (11%), executing GL20C.nglUniform1fv (30%)
       removing this cost entirely: about 1057 -> 1104 fps
  4. [cpu] immediatelyfast costs 0.040 ms per frame on the render thread
       6.6% of render-thread CPU time, mostly in world, 32% in its own code (rest is vanilla/library code it called)
       52%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:116   <- ItemInHandRenderer.m_109314_$mixinextras$wrapped$96:327
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (72%), executing RenderStateShard.clearRenderState:41 (9.4%)
       21%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:125   <- LevelRenderer.renderLevel:1283
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (42%), executing RenderStateShard.setupRenderState:37 (16%)
       9.1%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.getBuffer:68   <- com.Polarice3.Goety.client.particles.LightningEffect.render:44
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.addNewFallbackBuffer:187 (29%), executing Objects.equals (10%)
       removing this cost entirely: about 1057 -> 1104 fps
  5. [cpu] punchy costs 0.032 ms per frame on the render thread
       5.2% of render-thread CPU time, mostly in world, 72% in its own code (rest is vanilla/library code it called)
       85%  ItemInHandRenderer.punchy$renderFirstPersonModel:1160 [mixin handler from punchy.mixin.client.ItemInHandRendererMixin]   <- ItemInHandRenderer.m_109314_$mixinextras$wrapped$96
               hot: punchy.client.state.MovementStateMachine.endRenderSample:419 (8.2%), executing PoseStack.mulPose:50 (5.9%)
       12%  punchy.platform.ForgeClientPlatform.onClientTick:109   <- Minecraft.tick:1875
               hot: punchy.client.state.HorseRidingStateMachine.tick:75 (4.1%), executing String.indexOfNonWhitespace (8.2%)
       removing this cost entirely: about 1057 -> 1094 fps
  6. [stutter] Stutter: unexplained (present)
       8 frames over 20 ms, worst 47 ms, 190 ms of extra frame time per minute
  7. [cpu] collections_of_optimizations costs 0.029 ms per frame on the render thread
       4.8% of render-thread CPU time, mostly in world, 83% in its own code (rest is vanilla/library code it called)
       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 (53%), executing Level.getChunk:4541 (10%)
       12%  Player.coo$offhandOnly$mixinextras$bridge$518 [mixin redirect from com.misanthropy.collections_of_optimizations.mixin.bettercombat.MixinOffhandOnlyTwoHandedCheck]   <- Player.getEquippedStack_Pre:28816 [mixin handler from net.bettercombat.mixin.PlayerEntityMixin]
               hot: com.misanthropy.collections_of_optimizations.core.WeaponAttributesCache.lookup:18 (100%), executing ConcurrentHashMap.get (100%)
       11%  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 1057 -> 1091 fps
  8. [cpu] gnetum costs 0.028 ms per frame on the render thread
       4.6% of render-thread CPU time, mostly in hud, 22% 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] (51%), executing ASMEventHandler.invoke:55 (28%)
       removing this cost entirely: about 1057 -> 1089 fps
  9. [stutter] Stutter: GC pause (G1 Young Generation)
       6 frames over 20 ms, worst 54 ms, 170 ms of extra frame time per minute
       allocation 674 MB/s; 41 collections, worst 53 ms
       126 MB/s fastchunkgen (19%): NoiseChunk.lambda$wrap$0:4484 [mixin merged from com.misanthropy.fastchunkgen.opts.worldgen.vanilla.mixin.noise_chunk_wrap.MixinNoiseChunk] -> [D
       121 MB/s collections_of_optimizations (18%): com.misanthropy.collections_of_optimizations.core.FeaturePlacement.step:58 -> ReferencePipeline$Head
       116 MB/s lithoform (17%): com.misanthropy.lithoform.compat.LandProvinces.province:496 -> [J
       Fix: cut allocation at the sites above (reuse objects, avoid streams/boxing in per-tick code).
 10. [world] minecraft:player (entity tick) costs 21 ms every second
       1,329 calls, 1062 us each, worst 21 ms at 59630, 200, 60000

FRAMES
  69,617 frames   p50 0.75 ms   p95 1.92 ms   p99 4.59 ms   worst 54 ms
  per frame:  tasks 0.012 ms  client tick 0.059 ms  render 0.45 ms  present 0.32 ms  other 0.10 ms
  inside those:  swap 0.32 ms  world 0.34 ms  hud 0.082 ms  screen 0.003 ms
  client tick: 3.09 ms per tick, 20.1 ticks per second
  GPU busy per frame (timer queries): p50 0.42 ms   p95 1.00 ms   p99 1.41 ms
  GPU time per pass (mean per frame, each pass also holds what mods drew at the stage before it):
    0.018 ms  3.3%  sky and frame setup   (p95 0.024 ms)
    0.023 ms  4.3%  solid terrain   (p95 0.49 ms)
    0.020 ms  3.7%  cutout mipped terrain   (p95 0.029 ms)
    0.000 ms  <0.1%  cutout terrain   (p95 0.002 ms)
    0.014 ms  2.7%  entities   (p95 0.025 ms)
    0.000 ms  <0.1%  block entities   (p95 0.002 ms)
    0.029 ms  5.5%  translucent terrain   (p95 0.21 ms)
    0.000 ms  <0.1%  tripwire   (p95 0.002 ms)
    0.000 ms  <0.1%  particles   (p95 0.005 ms)
    0.036 ms  6.8%  weather and clouds   (p95 0.069 ms)
    0.000 ms  <0.1%  end of level render   (p95 0.002 ms)
    0.16 ms  29%  hand and post effects   (p95 0.23 ms)
    0.13 ms  25%  hud   (p95 0.20 ms)
    0.10 ms  19%  screens and rest of frame   (p95 0.23 ms)

RENDER THREAD CPU BY MOD (sampled; excludes GPU wait, fps limiter and blocked time)
  12,526 samples: CPU work 64%, GPU wait 36%, limiter 0.0%, blocked on other threads <0.1%
  mods caused 80% 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 glQueryCounter; the mod that made the call is charged for it below
  ms/frame  share  own   mod                          mostly in
  0.066 ms  11%    44%   xaeroworldmap                no phase
  0.063 ms  11%    75%   minecraft (vanilla)          world
  0.055 ms  9.1%   100%  forge (loader, events)       world
  0.040 ms  6.7%   35%   embeddium                    world
  0.040 ms  6.6%   32%   immediatelyfast              world
  0.032 ms  5.2%   72%   punchy                       world
  0.029 ms  4.8%   83%   collections_of_optimizations world
  0.028 ms  4.6%   22%   gnetum                       hud
  0.026 ms  4.3%   25%   linggango_tweaks             world
  0.017 ms  2.9%   17%   oculus                       world
  0.016 ms  2.7%   3.7%  whatslaggin                  world
  0.013 ms  2.2%   54%   xaerolib                     no phase
  0.011 ms  1.8%   9.9%  let_there_be_atmosphere      world
  0.010 ms  1.7%   87%   flywheel                     world
  0.009 ms  1.5%   44%   brute_force_culling_revived  world
  0.15 ms   148 more below 0.5% each

HOT PATHS (where each mod's render-thread time goes; SRG names translated; <- = called from)
  xaeroworldmap  0.066 ms/frame, 11%
    100%  xaero.map.events.ClientEventsForge.renderTick:32  <- Minecraft.runTick:1148
          hot xaero.map.MapWriter.loadPixel:752 34%
          executing BlockAndTintGetter.getBrightness:15 22%
  minecraft (vanilla)  0.063 ms/frame, 11%, hottest vanilla methods:
    11%   LevelRenderer.renderLevel:1198  <- me.decce.ixeris.RenderThreadStarter.run:39
          executing Iterators$1.next:146 5.3%
    6.5%  Minecraft.runTick:1170  <- me.decce.ixeris.RenderThreadStarter.run:39
          executing ConcurrentLinkedQueue.poll 1.9%
    4.3%  FogRenderer.getPriorityFogFunction:211  <- me.decce.ixeris.RenderThreadStarter.run:39
          executing Spliterator.getExactSizeIfKnown 25%
  embeddium  0.040 ms/frame, 6.7%
    46%   me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.drawChunkLayer:284  <- LevelRenderer.renderChunkLayer:40702
          hot me.jellysquid.mods.sodium.client.render.chunk.terrain.TerrainRenderPass.startDrawing:62 31%
          executing GL32C.nglMultiDrawElementsBaseVertex 13%
    13%   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 29%
          executing GL20C.glUseProgram 16%
    8.3%  ShaderInstance.uploadUniforms:4132 [mixin redirect from me.jellysquid.mods.sodium.mixin.features.shader.uniform.ShaderProgramMixin]  <- ShaderInstance.apply:369
          hot Uniform.sodium$matchesLastUpload:2184 [mixin merged from me.jellysquid.mods.sodium.mixin.features.shader.uniform.UniformMixin] 11%
          executing GL20C.nglUniform1fv 30%
  immediatelyfast  0.040 ms/frame, 6.6%
    52%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:116  <- ItemInHandRenderer.m_109314_$mixinextras$wrapped$96:327
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 72%
          executing RenderStateShard.clearRenderState:41 9.4%
    21%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:125  <- LevelRenderer.renderLevel:1283
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 42%
          executing RenderStateShard.setupRenderState:37 16%
    9.1%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.getBuffer:68  <- com.Polarice3.Goety.client.particles.LightningEffect.render:44
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.addNewFallbackBuffer:187 29%
          executing Objects.equals 10%
  punchy  0.032 ms/frame, 5.2%
    85%   ItemInHandRenderer.punchy$renderFirstPersonModel:1160 [mixin handler from punchy.mixin.client.ItemInHandRendererMixin]  <- ItemInHandRenderer.m_109314_$mixinextras$wrapped$96
          hot punchy.client.state.MovementStateMachine.endRenderSample:419 8.2%
          executing PoseStack.mulPose:50 5.9%
    12%   punchy.platform.ForgeClientPlatform.onClientTick:109  <- Minecraft.tick:1875
          hot punchy.client.state.HorseRidingStateMachine.tick:75 4.1%
          executing String.indexOfNonWhitespace 8.2%
  collections_of_optimizations  0.029 ms/frame, 4.8%
    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 53%
          executing Level.getChunk:4541 10%
    12%   Player.coo$offhandOnly$mixinextras$bridge$518 [mixin redirect from com.misanthropy.collections_of_optimizations.mixin.bettercombat.MixinOffhandOnlyTwoHandedCheck]  <- Player.getEquippedStack_Pre:28816 [mixin handler from net.bettercombat.mixin.PlayerEntityMixin]
          hot com.misanthropy.collections_of_optimizations.core.WeaponAttributesCache.lookup:18 100%
          executing ConcurrentHashMap.get 100%
    11%   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%
  gnetum  0.028 ms/frame, 4.6%
    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] 51%
          executing ASMEventHandler.invoke:55 28%
  linggango_tweaks  0.026 ms/frame, 4.3%
    34%   com.misanthropy.linggango.linggango_tweaks.lumalight.LumalightClient.onRenderLevel:91  <- GameRenderer.renderLevel:1128
          hot com.misanthropy.linggango.linggango_tweaks.lumalight.PostEffectRenderer.draw:210 29%
          executing GL45C.glBlitNamedFramebuffer 23%
    24%   com.misanthropy.linggango.linggango_tweaks.client.DynamicCrosshairHandler.onRenderCrosshair:205  <- ForgeGui.gnetum$postEvent:3130 [mixin merged from me.decce.gnetum.mixins.ForgeGuiMixin]
          executing GL20C.glUseProgram 27%
    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 45%
          executing GL30C.glBindFramebuffer 16%

STUTTERS (frames over 20 ms, grouped by what was happening during them)
  frames  worst     extra/min   cause
  8       47 ms     190 ms      unexplained (present)
  6       54 ms     170 ms      GC pause (G1 Young Generation)
  2       42 ms     55 ms       lock wait (flywheel)
  1       51 ms     46 ms       unexplained (client tick)
  1       37 ms     33 ms       unexplained (render)
  1       26 ms     23 ms       subtle_effects: einstein.subtle_effects.particle.SplashRippleParticle$Provider.createParticle

  worst frames:
  15:17:56.750  54 ms    render 0.65 ms        GC pause (G1 Young Generation)
                             51 ms of the frame was a stop-the-world collection
  15:18:00.041  51 ms    client tick 49 ms     unexplained (client tick)
                             1 stack samples landed inside this frame, too few to name a cause
  15:17:59.906  47 ms    present 45 ms         unexplained (present)
                             0 stack samples landed inside this frame, too few to name a cause
  15:17:59.500  42 ms    render 41 ms          lock wait (flywheel)
                             40 ms blocked on a monitor held by another thread
  15:17:59.211  37 ms    render 32 ms          unexplained (render)
                             8 samples, no single owner
  15:18:00.692  37 ms    render 36 ms          GC pause (G1 Young Generation)
                             34 ms of the frame was a stop-the-world collection
  15:18:02.999  34 ms    render 0.41 ms        GC pause (G1 Young Generation)
                             28 ms of the frame was a stop-the-world collection
  15:17:59.971  29 ms    present 28 ms         unexplained (present)
                             0 stack samples landed inside this frame, too few to name a cause
  15:18:00.200  26 ms    present 26 ms         unexplained (present)
                             0 stack samples landed inside this frame, too few to name a cause
  15:17:59.797  26 ms    present 25 ms         unexplained (present)
                             1 stack samples landed inside this frame, too few to name a cause

MEMORY AND GC
  allocated 43.5 GB (674 MB/s, exact, all threads), max heap 10.0 GB
  41 GC pauses (0 old/full), 594 ms paused (0.9%), worst 53 ms, one every 1.6 s
  longest pauses:
    15:17:56.747  53 ms  G1 Young Generation, G1 Evacuation Pause
    15:18:00.689  34 ms  G1 Young Generation, G1 Evacuation Pause
    15:18:02.995  28 ms  G1 Young Generation, G1 Evacuation Pause
    15:17:59.097  20 ms  G1 Young Generation, G1 Evacuation Pause
  heap after GC 7.4 GB (74% of max, old garbage stays until the next marking cycle), changed by 1.6 GB over the recording
  by mod (JFR samples scaled to each thread's exact allocation; 98% of bytes covered):
    126 MB/s  19%    fastchunkgen              1,718 samples
        11%  NoiseChunk.lambda$wrap$0:4484 [mixin merged from com.misanthropy.fastchunkgen.opts.worldgen.vanilla.mixin.noise_chunk_wrap.MixinNoiseChunk] -> [D
        6.5%  com.misanthropy.fastchunkgen.base.common.util.InvokingExecutorService.execute:88 -> CallbackInfoReturnable
        5.5%  ChunkMap.lambda$redirectGetRegion$0:15933 [mixin merged from com.misanthropy.fastchunkgen.threading.worldgen.mixin.MixinThreadedAnvilChunkStorage] -> [B
    121 MB/s  18%    collections_of_optimizations 1,594 samples
        11%  com.misanthropy.collections_of_optimizations.core.FeaturePlacement.step:58 -> ReferencePipeline$Head
        8.5%  com.misanthropy.collections_of_optimizations.core.FeaturePlacement.step:57 -> FeaturePlacement$Walk
        6.2%  com.misanthropy.collections_of_optimizations.core.FeaturePlacement.step:63 -> 1217103645
    116 MB/s  17%    lithoform                 1,621 samples
        22%  com.misanthropy.lithoform.compat.LandProvinces.province:496 -> [J
        12%  com.misanthropy.lithoform.compat.LandProvinces.province:495 -> Climate$TargetPoint
        8.7%  com.misanthropy.lithoform.biome.CaveProvinces.get:178 -> DensityFunction$SinglePointContext
    68 MB/s   10%    minecraft (vanilla)       3,285 samples
        11%  SkyLightSectionStorage$SkyDataLayerStorageMap.copy:164 -> [J
        6.9%  BlockLightSectionStorage$BlockDataLayerStorageMap.copy:36 -> [J
        6.5%  SkyLightSectionStorage$SkyDataLayerStorageMap.copy:164 -> Object;
    30 MB/s   4.4%   alexscaves                330 samples
        35%  com.github.alexmodguy.alexscaves.server.level.biome.ACBiomeRarity.getRareBiomeInfoForQuad -> CallbackInfoReturnable
        34%  MultiNoiseBiomeSource.citadel_getNoiseBiomeCoords:536 [mixin handler from com.github.alexmodguy.alexscaves.mixin.MultiNoiseBiomeSourceMixin] -> Climate$TargetPoint
        15%  MultiNoiseBiomeSource.citadel_getNoiseBiomeCoords:536 [mixin handler from com.github.alexmodguy.alexscaves.mixin.MultiNoiseBiomeSourceMixin] -> DensityFunction$SinglePointContext
    21 MB/s   3.1%   xaeroworldmap             99 samples
        78%  xaero.map.misc.ConsistentBitArray.<init>:30 -> [J
        7.7%  xaero.map.MapWriter.loadPixelHelp:843 -> CallbackInfoReturnable
    14 MB/s   2.1%   terrablender              152 samples
        41%  terrablender.worldgen.noise.Area.get -> 678761380
        11%  terrablender.worldgen.surface.NamespacedSurfaceRuleSource.lambda$apply$1:54 -> SurfaceRules$TestRule
        7.9%  terrablender.worldgen.surface.NamespacedSurfaceRuleSource$NamespacedRule.tryApply -> 334244568
    14 MB/s   2.0%   revelationfix             138 samples
        19%  com.mega.revelationfix.common.structures.FrostyardGenerationProtection$Context.collect:127 -> Collections$UnmodifiableMap
        13%  com.mega.revelationfix.common.structures.FrostyardGenerationProtection$Context.collect:123 -> HashMap$Node
        11%  com.mega.revelationfix.common.structures.FrostyardGenerationProtection$Context.collect:123 -> Type;
    13 MB/s   1.9%   punchy                    48 samples
        8.3%  punchy.client.state.SpearStateMachine.isSpearChargeType:373 -> [I
        6.3%  LevelRenderer.punchy$renderReleasedItemParticles:12607 [mixin handler from punchy.mixin.client.LevelRendererMixin] -> Object;
    10 MB/s   1.5%   radium                    261 samples
        65%  CompoundTag.useFasterCollection:1129 [mixin modify from me.jellysquid.mods.lithium.mixin.alloc.nbt.NbtCompoundMixin] -> Object;
        14%  CompoundTag.useFasterCollection:1129 [mixin modify from me.jellysquid.mods.lithium.mixin.alloc.nbt.NbtCompoundMixin] -> Object2ObjectOpenHashMap

INTEGRATED SERVER (single player; this is world lag, not FPS)
  1,262 ticks, mspt mean 7.06 ms, p50 5.31 ms, p95 9.83 ms, worst 1.2 s, 5 over 50 ms
    1.87 ms/tick  26%    minecraft (vanilla)       
    0.71 ms/tick  10%    collections_of_optimizations ServerLevel.coo$growthTick:10142 [mixin modifyExpressionValue from com.misanthropy.collections_of_optimizations.mixin.immersiveweathering.MixinServerLevelGrowthTick]
    0.48 ms/tick  6.8%   fastchunkgen              ServerChunkCache.beforeAwaitChunk:6611 [mixin redirect from com.misanthropy.fastchunkgen.base.mixin.priority.MixinServerChunkManager]
    0.43 ms/tick  6.2%   servercore                NaturalSpawner.servercore$fastBiomeLookup:2025 [mixin redirect from me.wesley1808.servercore.mixin.optimizations.biome_lookups.NaturalSpawnerMixin]
    0.41 ms/tick  5.8%   forge (loader, events)    
    0.24 ms/tick  3.4%   radium                    ServerLevel.redirectBlockStateTick:4159 [mixin redirect from me.jellysquid.mods.lithium.mixin.alloc.chunk_random.ServerWorldMixin]
    0.19 ms/tick  2.6%   l2hostility               dev.xkmc.l2hostility.events.CapabilityEvents.onStartTrackingChunk:135
    0.15 ms/tick  2.2%   linggango_tweaks          ChunkMap.lt$endTick:17918 [mixin handler from com.misanthropy.linggango.linggango_tweaks.mixin.minecraft.ChunkSaveSmoothingMixin]

THREADS (exact CPU per thread group; 'runs' = what JFR saw executing on it)
  the game used 6.05 of 16 cores, whole machine 62% busy
  cores  n    allocated   group                            runs
  4.33   25   25.5 GB     FastChunkGen worker ##           lithoform 49%, fastchunkgen 18%, alexscaves 12%
  0.65   1    8.1 GB      Render thread                    xaeroworldmap 28%, collections_of_optimizations 7.1%, punchy 7.1%
  0.31   15   3.6 GB      ForkJoinPool.commonPool-worker-# lithoform 55%, ae2 9.2%, integrated_api 9.2%
  0.17   1    2.9 GB      Server thread                    minecraft 39%, servercore 9.2%, collections_of_optimizations 8.2%
  0.15   10   70 MB       Flywheel Task Executor ##        flywheel 100%
  0.13   1    528 MB      Linggango Streams                lithoform 88%, linggango_tweaks 6.3%
  0.08   6    240 MB      Lumenite light #                 lumenite 93%, minecraft 6.9%
  0.03   15   34 MB       Worker-Main-#                    minecraft 67%, jdk 33%
  0.03   1    316 KB      spark-monitoring-thread          too few samples
  0.02   1    978 KB      whatslaggin-threads              too few samples

ENTITIES, BLOCK ENTITIES, SCREENS (exact timings; per second of recording)
  entity render:
    1.89 ms/s  64/s     30 us    minecraft:creeper                           worst 1.16 ms at 2504, 64, 809
    1.74 ms/s  64/s     27 us    terramity:green_fairy                       worst 1.04 ms at 2480, 67, 800
  entity tick:
    21 ms/s    20/s     1062 us  minecraft:player                            worst 21 ms at 59630, 200, 60000
  server entity tick:
    5.12 ms/s  18/s     285 us   minecraft:player                            worst 12 ms at 58910, 200, 60000
    1.89 ms/s  109/s    17 us    minecraft:falling_block                     worst 1.39 ms at 59904, -20, 59948
    1.74 ms/s  42/s     42 us    minecraft:item                              worst 1.50 ms at 59903, -19, 59947
  screen:
    2.70 ms/s  32/s     85 us    net.minecraft.client.gui.screens.ChatScreen worst 2.28 ms

JVM AND I/O
  class loads over 1 ms: 171 (839 ms), on the render/server thread 17 (46 ms)
  render thread lock: 133 ms in 34 events, flywheel at dev.engine_room.flywheel.impl.task.ThreadGroupNotifier.postNotification:16 (ThreadGroupNotifier)
  render thread file I/O: 32 ms in 3 events, modernfix at ModelManager.lambda$loadSingleBlockState$5:612 [mixin merged from org.embeddedt.modernfix.common.mixin.perf.dynamic_resources.ModelManagerMixin] (mods/born_in_chaos_[Forge]1.20.1_1.7.5.jar)
  render thread file I/O: 2.07 ms in 1 events, subtle_effects at einstein.subtle_effects.util.FluidLogicAccessor.subtleEffects$updateFluidDefinitionHeight:64 (8.5.9/fastutil-8.5.9.jar)
  non-GC safepoints: 62 ms total (last: ThreadDump)
  log output: 0.5 lines/s
  exceptions thrown: 23.3/s, top: 1.1/s  NoSuchFileException 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)
  xaeroworldmap 1.46.0;  embeddium 0.3.32-beta.113-dirty+mc1.20.1;  immediatelyfast 1.5.5+1.20.4;  punchy 2.8c;  
  collections_of_optimizations 5.32;  gnetum 2.5.1+1.20.1-forge;  ;  fastchunkgen 0.38;  
  lithoform 2.0.0-alpha12;  flywheel 1.0.5;  

RECORDING
  stack sampler every 5 ms: 12,526 render-thread, 1,252 server-thread samples (server only while ticking)
  JFR on (cpu, allocation, locks, file io, class loading, safepoints, exceptions): 18,594 CPU samples, 18,539 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
