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

VERDICT
  729 fps average (1.37 ms per frame), 1% low 76 fps, 0.1% low 31 fps.
  BALANCED: 0.99 ms CPU plus 0.38 ms waiting on the GPU per frame. Cuts on either side help.
  22 stutters over 20 ms (43.4 per minute), worst 73 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.37 ms frame waits on the GPU
       Both CPU and GPU cuts help here. CPU work: 0.99 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 49 ms, 562 ms of extra frame time per minute
       allocation 667 MB/s; 9 collections, worst 35 ms
       143 MB/s collections_of_optimizations (21%): com.misanthropy.collections_of_optimizations.core.NbtFastLoad.loadCompound:131 -> Object;
       99 MB/s fastchunkgen (15%): com.misanthropy.fastchunkgen.base.common.util.InvokingExecutorService.execute:88 -> Double
       63 MB/s minecraft (9.5%): RegionFile.getChunkDataInputStream:180 -> [B
       Fix: cut allocation at the sites above (reuse objects, avoid streams/boxing in per-tick code).
  3. [cpu] embeddium costs 0.077 ms per frame on the render thread
       8.1% of render-thread CPU time, mostly in world, 48% 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 (30%), executing GL32C.nglMultiDrawElementsBaseVertex (30%)
       15%  me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.setupTerrain:218   <- LevelRenderer.setupRender:40729
               hot: me.jellysquid.mods.sodium.client.render.texture.SpriteUtil.markSpriteActive:22 (13%), executing JNI.invokePV (4.3%)
       10%  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.render:188 (19%), executing VertexBuffer._drawWithShader:128 (9.7%)
       removing this cost entirely: about 729 -> 772 fps
  4. [cpu] xaeroworldmap costs 0.070 ms per frame on the render thread
       7.4% of render-thread CPU time, mostly in no phase, 61% in its own code (rest is vanilla/library code it called)
       92%  xaero.map.events.ClientEventsForge.renderTick:32   <- Minecraft.runTick:1148
               hot: xaero.map.graphics.TextureUploader.uploadTextures:118 (22%), executing GL11C.glFinish (29%)
       7.5%  Minecraft.onRunTickStart:36455 [mixin handler from xaero.map.mixin.MixinForgeMinecraftClient]   <- Minecraft.runTick
               hot: xaero.map.region.texture.RegionTexture.setBiome:685 (81%), executing Object2IntOpenHashMap.getOrDefault:404 (4.8%)
       removing this cost entirely: about 729 -> 768 fps
  5. [tick] Each client tick takes 4.43 ms
       20 ticks a second run inline on the render thread, so 20 frames a second each take 4.43 ms longer than the rest (uneven frame pacing).
       collections_of_optimizations 0.41 ms per tick
       linggango_tweaks 0.30 ms per tick
       punchy 0.15 ms per tick
       alexsmobs 0.11 ms per tick
       subtle_effects 0.11 ms per tick
  6. [cpu] collections_of_optimizations costs 0.058 ms per frame on the render thread
       6.1% of render-thread CPU time, mostly in world, 89% in its own code (rest is vanilla/library code it called)
       36%  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%)
       12%  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 (39%), executing Level.getGameTime:729 (29%)
       6.9%  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 (25%)
       removing this cost entirely: about 729 -> 761 fps
  7. [stutter] Stutter: unexplained (present)
       5 frames over 20 ms, worst 40 ms, 251 ms of extra frame time per minute
  8. [cpu] immediatelyfast costs 0.056 ms per frame on the render thread
       5.8% of render-thread CPU time, mostly in world, 29% in its own code (rest is vanilla/library code it called)
       49%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:116   <- ItemInHandRenderer.m_109314_$mixinextras$wrapped$96:327
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (80%), executing RenderStateShard.clearRenderState:41 (12%)
       20%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:125   <- LevelRenderer.renderLevel:1283
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (40%), executing GL11C.glBlendFunc (11%)
       16%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endLastBatch:105   <- LevelRenderer.renderLevel:1228
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (77%), executing RenderStateShard.setupRenderState:37 (14%)
       removing this cost entirely: about 729 -> 760 fps
  9. [cpu] linggango_tweaks costs 0.044 ms per frame on the render thread
       4.6% of render-thread CPU time, mostly in world, 31% in its own code (rest is vanilla/library code it called)
       28%  com.misanthropy.linggango.linggango_tweaks.lumalight.LumalightClient.onRenderLevel:91   <- GameRenderer.renderLevel:1128
               hot: com.misanthropy.linggango.linggango_tweaks.lumalight.PostEffectRenderer.draw:210 (36%), executing GL45C.glBlitNamedFramebuffer (24%)
       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 (30%), executing JNI.invokeD (15%)
       13%  com.misanthropy.linggango.linggango_tweaks.client.DynamicCrosshairHandler.onRenderCrosshair:205   <- ForgeGui.gnetum$postEvent:3130 [mixin merged from me.decce.gnetum.mixins.ForgeGuiMixin]
               executing GL20C.glUseProgram (22%)
       removing this cost entirely: about 729 -> 753 fps
 10. [stutter] Stutter: unexplained (render)
       2 frames over 20 ms, worst 73 ms, 186 ms of extra frame time per minute

FRAMES
  22,120 frames   p50 0.95 ms   p95 3.41 ms   p99 8.26 ms   worst 73 ms
  per frame:  tasks 0.037 ms  client tick 0.12 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.11 ms  screen 0.007 ms
  client tick: 4.43 ms per tick, 20.0 ticks per second
  GPU busy per frame (timer queries): p50 0.67 ms   p95 1.57 ms   p99 2.59 ms
  GPU time per pass (mean per frame, each pass also holds what mods drew at the stage before it):
    0.023 ms  3.0%  sky and frame setup   (p95 0.031 ms)
    0.14 ms  18%  solid terrain   (p95 0.30 ms)
    0.026 ms  3.3%  cutout mipped terrain   (p95 0.034 ms)
    0.000 ms  <0.1%  cutout terrain   (p95 0.002 ms)
    0.021 ms  2.7%  entities   (p95 0.045 ms)
    0.000 ms  <0.1%  block entities   (p95 0.002 ms)
    0.033 ms  4.2%  translucent terrain   (p95 0.30 ms)
    0.000 ms  <0.1%  tripwire   (p95 0.002 ms)
    0.001 ms  <0.1%  particles   (p95 0.009 ms)
    0.043 ms  5.6%  weather and clouds   (p95 0.093 ms)
    0.000 ms  <0.1%  end of level render   (p95 0.002 ms)
    0.22 ms  28%  hand and post effects   (p95 0.35 ms)
    0.15 ms  19%  hud   (p95 0.24 ms)
    0.13 ms  16%  screens and rest of frame   (p95 0.39 ms)

RENDER THREAD CPU BY MOD (sampled; excludes GPU wait, fps limiter and blocked time)
  5,495 samples: CPU work 69%, GPU wait 30%, 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 glFinish; the mod that made the call is charged for it below
  ms/frame  share  own   mod                          mostly in
  0.12 ms   13%    85%   minecraft (vanilla)          world
  0.095 ms  9.9%   100%  forge (loader, events)       world
  0.077 ms  8.1%   48%   embeddium                    world
  0.070 ms  7.4%   61%   xaeroworldmap                no phase
  0.058 ms  6.1%   89%   collections_of_optimizations world
  0.056 ms  5.8%   29%   immediatelyfast              world
  0.044 ms  4.6%   31%   linggango_tweaks             world
  0.039 ms  4.0%   71%   punchy                       world
  0.033 ms  3.4%   24%   gnetum                       hud
  0.020 ms  2.0%   15%   oculus                       world
  0.020 ms  2.0%   5.1%  whatslaggin                  world
  0.019 ms  2.0%   57%   brute_force_culling_revived  world
  0.019 ms  2.0%   21%   asyncparticles               world
  0.016 ms  1.7%   25%   let_there_be_atmosphere      world
  0.012 ms  1.3%   73%   geckolib                     world
  0.26 ms   132 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, 13%, hottest vanilla methods:
    10%   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 9.7%
  embeddium  0.077 ms/frame, 8.1%
    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 30%
          executing GL32C.nglMultiDrawElementsBaseVertex 30%
    15%   me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.setupTerrain:218  <- LevelRenderer.setupRender:40729
          hot me.jellysquid.mods.sodium.client.render.texture.SpriteUtil.markSpriteActive:22 13%
          executing JNI.invokePV 4.3%
    10%   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.render:188 19%
          executing VertexBuffer._drawWithShader:128 9.7%
  xaeroworldmap  0.070 ms/frame, 7.4%
    92%   xaero.map.events.ClientEventsForge.renderTick:32  <- Minecraft.runTick:1148
          hot xaero.map.graphics.TextureUploader.uploadTextures:118 22%
          executing GL11C.glFinish 29%
    7.5%  Minecraft.onRunTickStart:36455 [mixin handler from xaero.map.mixin.MixinForgeMinecraftClient]  <- Minecraft.runTick
          hot xaero.map.region.texture.RegionTexture.setBiome:685 81%
          executing Object2IntOpenHashMap.getOrDefault:404 4.8%
  collections_of_optimizations  0.058 ms/frame, 6.1%
    36%   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%
    12%   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 39%
          executing Level.getGameTime:729 29%
    6.9%  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 25%
  immediatelyfast  0.056 ms/frame, 5.8%
    49%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:116  <- ItemInHandRenderer.m_109314_$mixinextras$wrapped$96:327
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 80%
          executing RenderStateShard.clearRenderState:41 12%
    20%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:125  <- LevelRenderer.renderLevel:1283
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 40%
          executing GL11C.glBlendFunc 11%
    16%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endLastBatch:105  <- LevelRenderer.renderLevel:1228
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 77%
          executing RenderStateShard.setupRenderState:37 14%
  linggango_tweaks  0.044 ms/frame, 4.6%
    28%   com.misanthropy.linggango.linggango_tweaks.lumalight.LumalightClient.onRenderLevel:91  <- GameRenderer.renderLevel:1128
          hot com.misanthropy.linggango.linggango_tweaks.lumalight.PostEffectRenderer.draw:210 36%
          executing GL45C.glBlitNamedFramebuffer 24%
    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 30%
          executing JNI.invokeD 15%
    13%   com.misanthropy.linggango.linggango_tweaks.client.DynamicCrosshairHandler.onRenderCrosshair:205  <- ForgeGui.gnetum$postEvent:3130 [mixin merged from me.decce.gnetum.mixins.ForgeGuiMixin]
          executing GL20C.glUseProgram 22%
  punchy  0.039 ms/frame, 4.0%
    88%   ItemInHandRenderer.punchy$renderFirstPersonModel:1160 [mixin handler from punchy.mixin.client.ItemInHandRendererMixin]  <- ItemInHandRenderer.m_109314_$mixinextras$wrapped$96
          hot punchy.client.state.MovementStateMachine.endRenderSample:419 6.6%
          executing LivingEntity.getItemInHand:1876 4.4%
    11%   punchy.platform.ForgeClientPlatform.onClientTick:109  <- Minecraft.tick:1875
          hot punchy.client.render.ToolKindResolver.resolveItemKind:246 5.9%
          executing String.indexOfNonWhitespace 18%
  gnetum  0.033 ms/frame, 3.4%
    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 25%

  blocked (render thread parked, waiting for another thread):
    0.005 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       49 ms     562 ms      GC pause (G1 Young Generation)
  5       40 ms     251 ms      unexplained (present)
  2       73 ms     186 ms      unexplained (render)
  1       55 ms     107 ms      subtle_effects: einstein.subtle_effects.init.ModEntityTickers.getSleepingTicker
  1       36 ms     68 ms       JVM safepoint for a stack sample (profiler overhead, not your mods)
  1       35 ms     67 ms       vanilla minecraft: ServerboundMovePlayerPacket$Pos.<init>
  1       22 ms     42 ms       embeddium: me.jellysquid.mods.sodium.client.render.chunk.RenderSectionManager.connectNeighborNodes
  1       22 ms     41 ms       first-time class loading (minecraft)
  1       21 ms     40 ms       GPU / driver (buffer swap)

  worst frames:
  05:04:38.335  73 ms    render 67 ms          unexplained (render)
                             14 samples, no single owner
  05:04:53.285  55 ms    client tick 51 ms     subtle_effects: einstein.subtle_effects.init.ModEntityTickers.getSleepingTicker
                             2 of 3 samples, hottest line einstein.subtle_effects.init.ModEntityTickers.getSleepingTicker:376
  05:04:40.461  49 ms    client tick 46 ms     GC pause (G1 Young Generation)
                             35 ms of the frame was a stop-the-world collection
  05:04:46.556  43 ms    client tick 41 ms     GC pause (G1 Young Generation)
                             32 ms of the frame was a stop-the-world collection
  05:04:44.548  40 ms    present 39 ms         unexplained (present)
                             1 stack samples landed inside this frame, too few to name a cause
  05:04:43.866  38 ms    render 37 ms          GC pause (G1 Young Generation)
                             34 ms of the frame was a stop-the-world collection
  05:04:58.347  36 ms    client tick 35 ms     JVM safepoint for a stack sample (profiler overhead, not your mods)
                             32 ms with every thread stopped for a stack sample (this profiler or spark); a thread was slow to reach the safepoint
  05:04:43.148  35 ms    client tick 31 ms     vanilla minecraft: ServerboundMovePlayerPacket$Pos.<init>
                             1 of 2 samples, hottest line dev.xkmc.l2hostility.events.ClientGlowingHandler.isGlowing:31
  05:04:37.912  35 ms    render 0.71 ms        GC pause (G1 Young Generation)
                             31 ms of the frame was a stop-the-world collection
  05:04:51.826  29 ms    render 3.33 ms        GC pause (G1 Young Generation)
                             25 ms of the frame was a stop-the-world collection

MEMORY AND GC
  allocated 19.8 GB (667 MB/s, exact, all threads), max heap 10.0 GB
  9 GC pauses (0 old/full), 251 ms paused (0.8%), worst 35 ms, one every 3.4 s
  longest pauses:
    05:04:40.452  35 ms  G1 Young Generation, G1 Evacuation Pause
    05:04:43.862  35 ms  G1 Young Generation, GCLocker Initiated GC
    05:04:46.550  32 ms  G1 Young Generation, G1 Evacuation Pause
    05:04:37.911  31 ms  G1 Young Generation, G1 Evacuation Pause
    05:04:49.046  25 ms  G1 Young Generation, GCLocker Initiated GC
    05:04:51.825  25 ms  G1 Young Generation, G1 Evacuation Pause
    05:04:54.128  23 ms  G1 Young Generation, GCLocker Initiated GC
    05:04:56.527  23 ms  G1 Young Generation, G1 Evacuation Pause
  heap after GC 5.8 GB (58% of max, old garbage stays until the next marking cycle), changed by 584 MB over the recording
  by mod (JFR samples scaled to each thread's exact allocation; 98% of bytes covered):
    143 MB/s  21%    collections_of_optimizations 1,227 samples
        9.4%  com.misanthropy.collections_of_optimizations.core.NbtFastLoad.loadCompound:131 -> Object;
        8.1%  com.misanthropy.collections_of_optimizations.core.NbtFastLoad.loadCompound:131 -> Object2ObjectOpenHashMap
        6.6%  com.misanthropy.collections_of_optimizations.core.FeaturePlacement.step:63 -> BlockPos
    99 MB/s   15%    fastchunkgen              506 samples
        8.2%  com.misanthropy.fastchunkgen.base.common.util.InvokingExecutorService.execute:88 -> Double
        7.7%  NoiseChunk.lambda$wrap$0:4484 [mixin merged from com.misanthropy.fastchunkgen.opts.worldgen.vanilla.mixin.noise_chunk_wrap.MixinNoiseChunk] -> [D
        6.4%  ChunkMap.lambda$scheduleChunkLoad$3:15032 [mixin merged from com.misanthropy.fastchunkgen.threading.chunkio.mixin.MixinThreadedAnvilChunkStorage] -> DataResult
    63 MB/s   9.5%   minecraft (vanilla)       1,466 samples
        8.6%  RegionFile.getChunkDataInputStream:180 -> [B
        5.6%  LeveledPriorityQueue$1.rehash:19 -> [J
        5.5%  FastBufferedInputStream.<init>:26 -> [B
    52 MB/s   7.7%   lithoform                 308 samples
        11%  com.misanthropy.lithoform.bowl.Special3D.fillArray:23 -> DensityFunctions$Spline$Point
        8.0%  com.misanthropy.lithoform.compat.LandProvinces.province:520 -> [J
        7.8%  NoiseChunk.lithoform$sharedScan:3507 [mixin handler from com.misanthropy.lithoform.mixin.PreliminarySurfaceMixin] -> DensityFunctions$Spline$Point
    33 MB/s   5.0%   linggango_tweaks          353 samples
        9.0%  com.misanthropy.linggango.linggango_tweaks.tweak.streams.WaterSolver.levels:204 -> [J
    29 MB/s   4.4%   xaeroworldmap             109 samples
        38%  xaero.map.file.worldsave.WorldDataReader.lambda$buildRegion$1:150 -> DataResult
        12%  xaero.map.file.worldsave.WorldDataReader.lambda$buildRegion$1:150 -> Either$Left
        9.7%  xaero.map.file.worldsave.WorldDataReader.lambda$buildRegion$1:150 -> [J
    28 MB/s   4.1%   terrablender              136 samples
        89%  terrablender.worldgen.surface.NamespacedSurfaceRuleSource$NamespacedRule.tryApply -> 956925247
    25 MB/s   3.8%   radium                    179 samples
        60%  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
    18 MB/s   2.8%   biomeswevegone            90 samples
        15%  net.potionstudios.biomeswevegone.world.level.levelgen.surfacerules.WeightedRuleSource.apply:31 -> SurfaceRules$StoneDepthCheck$1StoneDepthCondition
        9.9%  net.potionstudios.biomeswevegone.world.level.levelgen.surfacerules.WeightedRuleSource.apply:31 -> SurfaceRules$TestRule
        8.2%  net.potionstudios.biomeswevegone.world.level.levelgen.surfacerules.WeightedRuleSource.apply:31 -> Object;
    17 MB/s   2.6%   modernfix                 230 samples
        43%  org.embeddedt.modernfix.world.gen.PrefetchingBlockColumn.setBlock:113 -> CallbackInfoReturnable
        9.9%  org.embeddedt.modernfix.structure.CachingStructureManager.readStructure:39 -> BlockPos
        8.2%  org.embeddedt.modernfix.structure.CachingStructureManager.readStructure:39 -> StructureTemplate$StructureBlockInfo

INTEGRATED SERVER (single player; this is world lag, not FPS)
  608 ticks, mspt mean 14 ms, p50 12 ms, p95 27 ms, worst 62 ms, 5 over 50 ms
    3.54 ms/tick  26%    minecraft (vanilla)       
    1.03 ms/tick  7.5%   collections_of_optimizations ServerLevel.coo$growthTick:10142 [mixin modifyExpressionValue from com.misanthropy.collections_of_optimizations.mixin.immersiveweathering.MixinServerLevelGrowthTick]
    0.76 ms/tick  5.5%   forge (loader, events)    
    0.63 ms/tick  4.6%   alexsmobs                 com.github.alexthe666.alexsmobs.entity.EntityLeafcutterAnt.tick:260
    0.58 ms/tick  4.2%   radium                    EntitySectionStorage.forEachInBox:555 [mixin handler from me.jellysquid.mods.lithium.mixin.entity.fast_retrieval.SectionedEntityCacheMixin]
    0.42 ms/tick  3.1%   pehkui                    Entity.pehkui$tick:38737 [mixin handler from virtuoel.pehkui.mixin.EntityMixin]
    0.37 ms/tick  2.7%   terramity                 net.mcreator.terramity.entity.GreenFairyEntity.aiStep:213
    0.32 ms/tick  2.3%   goety                     com.Polarice3.Goety.common.events.ModEvents.LivingEffects:687

THREADS (exact CPU per thread group; 'runs' = what JFR saw executing on it)
  the game used 4.81 of 16 cores, whole machine 67% busy
  cores  n    allocated   group                            runs
  2.21   12   9.8 GB      FastChunkGen worker ##           lithoform 36%, collections_of_optimizations 18%, biomeswevegone 15%
  0.66   1    2.7 GB      Render thread                    minecraft 13%, xaeroworldmap 12%, collections_of_optimizations 10.0%
  0.40   1    873 MB      Linggango Streams                lithoform 65%, linggango_tweaks 31%
  0.40   15   1.9 GB      ForkJoinPool.commonPool-worker-# lithoform 64%, collections_of_optimizations 12%, integrated_api 8.1%
  0.33   1    2.7 GB      Server thread                    minecraft 29%, collections_of_optimizations 5.8%, forge 5.3%
  0.20   10   442 MB      Chunk Render Task Executor ##    embeddium 51%, minecraft 32%, linggango_tweaks 8.0%
  0.18   10   31 MB       Flywheel Task Executor ##        collections_of_optimizations 67%, flywheel 33%
  0.09   6    76 MB       Lumenite light #                 lumenite 99%
  0.08   21   233 MB      Thread-#                         xaeroworldmap 66%, minecraft 30%
  0.04   15   25 MB       Worker-Main-#                    minecraft 54%, jdk 38%, forge 7.7%
  0.03   1    331 MB      JFR Event Stream #               no JFR samples (idle or native)
  0.03   1    158 KB      spark-monitoring-thread          no JFR samples (idle or native)

ENTITIES, BLOCK ENTITIES, SCREENS (exact timings; per second of recording)
  entity render:
    13 ms/s    199/s    66 us    alexsmobs:leafcutter_ant                    worst 9.00 ms at 1497, 191, 788
    5.34 ms/s  359/s    15 us    terramity:green_fairy                       worst 0.56 ms at 2504, 71, 758
    5.20 ms/s  29/s     179 us   alexsmobs:emu                               worst 39 ms at 1489, 188, 785
    5.12 ms/s  451/s    11 us    minecraft:item                              worst 4.48 ms at 1477, 197, 792
    3.19 ms/s  17/s     182 us   primitive_mobs:chameleon                    worst 35 ms at 1390, 197, 764
    2.86 ms/s  39/s     74 us    alexsmobs:komodo_dragon                     worst 2.73 ms at 1195, 161, 750
  entity tick:
    16 ms/s    20/s     789 us   minecraft:player                            worst 26 ms at 1419, 200, 778
    2.75 ms/s  111/s    25 us    minecraft:item                              worst 2.69 ms at 1474, 199, 792
    1.66 ms/s  41/s     40 us    alexsmobs:leafcutter_ant                    worst 0.49 ms at 1357, 211, 776
  server entity tick:
    16 ms/s    227/s    70 us    terramity:green_fairy                       worst 2.64 ms at 1307, 209, 790
    14 ms/s    564/s    24 us    minecraft:item                              worst 3.39 ms at 1474, 199, 792
    9.34 ms/s  90/s     103 us   alexsmobs:leafcutter_ant                    worst 1.76 ms at 1489, 190, 788
    5.07 ms/s  46/s     111 us   hexerei:crow                                worst 5.94 ms at 1302, 176, 693
    3.09 ms/s  16/s     190 us   minecraft:player                            worst 3.13 ms at 1259, 200, 775
    2.92 ms/s  32/s     92 us    minecraft:skeleton                          worst 1.61 ms at 1305, 106, 777
    2.80 ms/s  30/s     93 us    alexsmobs:toucan                            worst 0.98 ms at 1172, 166, 716
    2.77 ms/s  41/s     67 us    ars_nouveau:starbuncle                      worst 0.73 ms at 1155, 156, 749
  server block entity tick:
    1.79 ms/s  3,238/s  1 us     minecraft:sculk_sensor                      worst 5.45 ms at 1269, -15, 791
  screen:
    5.08 ms/s  79/s     65 us    net.minecraft.client.gui.screens.ChatScreen worst 0.71 ms

JVM AND I/O
  class loads over 1 ms: 303 (862 ms), on the render/server thread 85 (278 ms)
    by owner: minecraft 131 classes, 360 ms; saintsdragons 31 classes, 102 ms; linggango_fixes 21 classes, 83 ms; linggango_tweaks 8 classes, 52 ms; byepregen 8 classes, 48 ms
  non-GC safepoints: 53 ms total (last: ThreadDump)
  log output: 3.9 lines/s, top: 3.5/s  net.minecraft.world.level.chunk.storage.ChunkSerializer
  exceptions thrown: 75.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;  xaeroworldmap 1.46.0;  collections_of_optimizations 5.6;  
  immediatelyfast 1.5.5+1.20.4;  linggango_tweaks 7.39;  punchy 2.8c;  alexsmobs 1.22.9;  
  subtle_effects 1.15.0;  fastchunkgen 0.39;  ;  

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