WhatsLaggin report (manual)  48.8 s recorded, ended 2026-10-23 05:28:24
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, 318 entities loaded

VERDICT
  273 fps average (3.67 ms per frame), 1% low 33 fps, 0.1% low 10 fps.
  CPU-BOUND: the render thread is busy for 3.59 ms of each frame; the GPU wait is only 0.072 ms. Cutting render-thread work raises FPS directly.
  82 stutters over 20 ms (100.8 per minute), worst 315 ms. Biggest cause: unexplained (client tick).

WHAT TO FIX (ranked by time lost per second of play)
  1. [stutter] Stutter: unexplained (client tick)
       23 frames over 20 ms, worst 119 ms, 728 ms of extra frame time per minute
  2. [cpu] immediatelyfast costs 0.33 ms per frame on the render thread
       9.3% of render-thread CPU time, mostly in world, 22% in its own code (rest is vanilla/library code it called)
       68%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endLastBatch:105   <- LevelRenderer.renderLevel:1228
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (52%), executing GL15C.nglBufferSubData (34%)
       13%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:116   <- GuiGraphics.flush:125
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (81%), executing GL20C.glUseProgram (10%)
       7.4%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.getBuffer:68   <- LivingEntityRenderer.render:124
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.addNewFallbackBuffer:187 (37%), executing BufferBuilder.begin:104 (11%)
       removing this cost entirely: about 273 -> 300 fps
  3. [tick] Each client tick takes 8.41 ms
       20 ticks a second run inline on the render thread, so 20 frames a second each take 8.41 ms longer than the rest (uneven frame pacing).
       collections_of_optimizations 0.71 ms per tick
       linggango_tweaks 0.40 ms per tick
       pehkui 0.43 ms per tick
       cataclysm 0.43 ms per tick
       goety 0.26 ms per tick
  4. [cpu] collections_of_optimizations costs 0.25 ms per frame on the render thread
       6.9% of render-thread CPU time, mostly in world, 91% in its own code (rest is vanilla/library code it called)
       23%  com.misanthropy.collections_of_optimizations.core.GeckoFastCube.tryRender:77   <- software.bernie.geckolib.renderer.GeoRenderer.renderCube:533
       10%  KeyframeAnimations.coo$leanAnimate:537 [mixin wrapMethod from com.misanthropy.collections_of_optimizations.mixin.vanilla.MixinKeyframeAnimations]   <- KeyframeAnimations.animate
               hot: HierarchicalModel.coo$cachePartLookup:535 [mixin wrapMethod from com.misanthropy.collections_of_optimizations.mixin.vanilla.MixinHierarchicalModelParts] (40%), executing Object2ObjectOpenHashMap.get:317 (6.0%)
       8.7%  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:163 (65%), executing Level.getGameTime:729 (18%)
       removing this cost entirely: about 273 -> 293 fps
  5. [cpu] geckolib costs 0.25 ms per frame on the render thread
       6.9% of render-thread CPU time, mostly in world, 62% in its own code (rest is vanilla/library code it called)
       94%  software.bernie.geckolib.renderer.GeoEntityRenderer.render:157   <- EntityRenderDispatcher.mixinextras$bridge$m_7392_$80
               hot: software.bernie.geckolib.util.RenderUtils.rotateMatrixAroundCube:61 (6.9%), executing PoseStack.mulPose:50 (22%)
       5.3%  TextureManager.wrapAnimatableTexture:1524 [mixin handler from software.bernie.geckolib.mixin.client.TextureManagerMixin]   <- TextureManager.getTexture
               executing HashMap.hash (88%)
       removing this cost entirely: about 273 -> 292 fps
  6. [stutter] Stutter: GPU / driver (buffer swap)
       1 frames over 20 ms, worst 303 ms, 369 ms of extra frame time per minute
  7. [stutter] Stutter: GC pause (G1 Young Generation)
       9 frames over 20 ms, worst 49 ms, 305 ms of extra frame time per minute
       allocation 458 MB/s; 9 collections, worst 24 ms
       62 MB/s geckolib (14%): software.bernie.geckolib.renderer.GeoRenderer.renderCubesOfBone:268 -> Matrix4f
       44 MB/s immediatelyfast (9.7%): net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 -> Vector3f
       44 MB/s minecraft (9.6%): PoseStack.pushPose:541 -> Matrix4f
       Fix: cut allocation at the sites above (reuse objects, avoid streams/boxing in per-tick code).
  8. [cpu] flerovium costs 0.18 ms per frame on the render thread
       5.0% of render-thread CPU time, mostly in world, 83% in its own code (rest is vanilla/library code it called)
       61%  ModelPart.onRender:1031 [mixin handler from com.moepus.flerovium.mixins.Entity.ModelPartMixin]   <- ModelPart.render
               hot: com.moepus.flerovium.functions.FastEntityRenderer.renderCuboids:123 (37%), executing ModelPart.translateAndRotate:3620 (5.3%)
       22%  ItemRenderer.onRrenderModelLists:1054 [mixin modify from com.moepus.flerovium.mixins.Item.ItemRendererMixin]   <- ItemRenderer.render:147
               hot: com.moepus.flerovium.functions.FastSimpleBakedModelRenderer.renderQuadList:140 (67%), executing ImmutableCollections$ListItr.next (2.9%)
       12%  ItemEntityRenderer.skipSuperRender:550 [mixin redirect from com.moepus.flerovium.mixins.Item.ItemEntityRenderMixin]   <- ItemEntityRenderer.render:99
               executing ASMEventHandler.invoke:55 (27%)
       removing this cost entirely: about 273 -> 287 fps
  9. [cpu] embeddium costs 0.16 ms per frame on the render thread
       4.6% of render-thread CPU time, mostly in world, 70% in its own code (rest is vanilla/library code it called)
       25%  net.caffeinemc.mods.sodium.api.math.MatrixHelper.rotateZYX:126   <- ModelPart.translateAndRotate:3614
               executing Matrix4f.rotateAffineZYX:5536 (63%)
       23%  me.jellysquid.mods.sodium.client.util.sorting.VertexSorters$AbstractVertexSorter.sort:29   <- BufferBuilder.putSortedQuadIndices:6098
               hot: me.jellysquid.mods.sodium.client.util.sorting.MergeSort.mergeSort:85 (27%)
       11%  me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.drawChunkLayer:284   <- LevelRenderer.renderChunkLayer:40702
               hot: me.jellysquid.mods.sodium.client.render.chunk.terrain.TerrainRenderPass.startDrawing:62 (18%), executing JNI.callPV (16%)
       removing this cost entirely: about 273 -> 286 fps
 10. [world] alexscaves:magnetron (entity render) costs 44 ms every second
       4,226 calls, 511 us each, worst 281 ms at 2532, 312, 791

FRAMES
  13,294 frames   p50 2.69 ms   p95 11 ms   p99 18 ms   worst 315 ms
  per frame:  tasks 0.064 ms  client tick 0.62 ms  render 2.80 ms  present 0.073 ms  other 0.11 ms
  inside those:  swap 0.072 ms  world 2.56 ms  hud 0.19 ms  screen 0.003 ms
  client tick: 8.41 ms per tick, 20.2 ticks per second
  GPU time per pass (mean per frame, each pass also holds what mods drew at the stage before it):
    0.042 ms  2.4%  sky and frame setup   (p95 0.042 ms)
    0.037 ms  2.2%  solid terrain   (p95 0.081 ms)
    0.027 ms  1.6%  cutout mipped terrain   (p95 0.029 ms)
    0.000 ms  <0.1%  cutout terrain   (p95 0.002 ms)
    0.46 ms  27%  entities   (p95 0.87 ms)
    0.31 ms  18%  block entities   (p95 0.44 ms)
    0.058 ms  3.4%  translucent terrain   (p95 0.30 ms)
    0.000 ms  <0.1%  tripwire   (p95 0.001 ms)
    0.007 ms  0.4%  particles   (p95 0.019 ms)
    0.042 ms  2.5%  weather and clouds   (p95 0.045 ms)
    0.006 ms  0.4%  end of level render   (p95 0.036 ms)
    0.31 ms  18%  hand and post effects   (p95 0.47 ms)
    0.20 ms  12%  hud   (p95 0.29 ms)
    0.20 ms  12%  screens and rest of frame   (p95 1.00 ms)

RENDER THREAD CPU BY MOD (sampled; excludes GPU wait, fps limiter and blocked time)
  9,636 samples: CPU work 98%, GPU wait 2.5%, limiter 0.0%, blocked on other threads 0.0%
  mods caused 86% of render-thread CPU work, vanilla/forge/driver the rest
  11% of CPU work is inside OpenGL calls (driver work or a GPU sync), mostly glBufferSubData; the mod that made the call is charged for it below
  ms/frame  share  own   mod                          mostly in
  0.36 ms   10.0%  93%   minecraft (vanilla)          world
  0.33 ms   9.3%   22%   immediatelyfast              world
  0.25 ms   6.9%   91%   collections_of_optimizations world
  0.25 ms   6.9%   62%   geckolib                     world
  0.18 ms   5.0%   83%   flerovium                    world
  0.16 ms   4.6%   70%   embeddium                    world
  0.14 ms   4.0%   100%  forge (loader, events)       world
  0.14 ms   3.8%   24%   citadel                      world
  0.098 ms  2.7%   45%   linggango_tweaks             world
  0.091 ms  2.5%   95%   pehkui                       world
  0.068 ms  1.9%   39%   cataclysm                    world
  0.062 ms  1.7%   29%   goety                        world
  0.060 ms  1.7%   20%   legendary_monsters           world
  0.059 ms  1.6%   32%   gnetum                       hud
  0.057 ms  1.6%   41%   opposing_force               world
  1.27 ms   179 more below 0.5% each

HOT PATHS (where each mod's render-thread time goes; SRG names translated; <- = called from)
  minecraft (vanilla)  0.36 ms/frame, 10.0%, hottest vanilla methods:
    13%   EntityRenderDispatcher.getRenderer:530  <- me.decce.ixeris.RenderThreadStarter.run:39
    9.3%  Entity.shouldRender:1562  <- me.decce.ixeris.RenderThreadStarter.run:39
    6.1%  LevelRenderer.renderLevel:1198  <- me.decce.ixeris.RenderThreadStarter.run:39
          executing Iterators$1.next:146 25%
  immediatelyfast  0.33 ms/frame, 9.3%
    68%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endLastBatch:105  <- LevelRenderer.renderLevel:1228
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 52%
          executing GL15C.nglBufferSubData 34%
    13%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:116  <- GuiGraphics.flush:125
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 81%
          executing GL20C.glUseProgram 10%
    7.4%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.getBuffer:68  <- LivingEntityRenderer.render:124
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.addNewFallbackBuffer:187 37%
          executing BufferBuilder.begin:104 11%
  collections_of_optimizations  0.25 ms/frame, 6.9%
    23%   com.misanthropy.collections_of_optimizations.core.GeckoFastCube.tryRender:77  <- software.bernie.geckolib.renderer.GeoRenderer.renderCube:533
    10%   KeyframeAnimations.coo$leanAnimate:537 [mixin wrapMethod from com.misanthropy.collections_of_optimizations.mixin.vanilla.MixinKeyframeAnimations]  <- KeyframeAnimations.animate
          hot HierarchicalModel.coo$cachePartLookup:535 [mixin wrapMethod from com.misanthropy.collections_of_optimizations.mixin.vanilla.MixinHierarchicalModelParts] 40%
          executing Object2ObjectOpenHashMap.get:317 6.0%
    8.7%  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:163 65%
          executing Level.getGameTime:729 18%
  geckolib  0.25 ms/frame, 6.9%
    94%   software.bernie.geckolib.renderer.GeoEntityRenderer.render:157  <- EntityRenderDispatcher.mixinextras$bridge$m_7392_$80
          hot software.bernie.geckolib.util.RenderUtils.rotateMatrixAroundCube:61 6.9%
          executing PoseStack.mulPose:50 22%
    5.3%  TextureManager.wrapAnimatableTexture:1524 [mixin handler from software.bernie.geckolib.mixin.client.TextureManagerMixin]  <- TextureManager.getTexture
          executing HashMap.hash 88%
  flerovium  0.18 ms/frame, 5.0%
    61%   ModelPart.onRender:1031 [mixin handler from com.moepus.flerovium.mixins.Entity.ModelPartMixin]  <- ModelPart.render
          hot com.moepus.flerovium.functions.FastEntityRenderer.renderCuboids:123 37%
          executing ModelPart.translateAndRotate:3620 5.3%
    22%   ItemRenderer.onRrenderModelLists:1054 [mixin modify from com.moepus.flerovium.mixins.Item.ItemRendererMixin]  <- ItemRenderer.render:147
          hot com.moepus.flerovium.functions.FastSimpleBakedModelRenderer.renderQuadList:140 67%
          executing ImmutableCollections$ListItr.next 2.9%
    12%   ItemEntityRenderer.skipSuperRender:550 [mixin redirect from com.moepus.flerovium.mixins.Item.ItemEntityRenderMixin]  <- ItemEntityRenderer.render:99
          executing ASMEventHandler.invoke:55 27%
  embeddium  0.16 ms/frame, 4.6%
    25%   net.caffeinemc.mods.sodium.api.math.MatrixHelper.rotateZYX:126  <- ModelPart.translateAndRotate:3614
          executing Matrix4f.rotateAffineZYX:5536 63%
    23%   me.jellysquid.mods.sodium.client.util.sorting.VertexSorters$AbstractVertexSorter.sort:29  <- BufferBuilder.putSortedQuadIndices:6098
          hot me.jellysquid.mods.sodium.client.util.sorting.MergeSort.mergeSort:85 27%
    11%   me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.drawChunkLayer:284  <- LevelRenderer.renderChunkLayer:40702
          hot me.jellysquid.mods.sodium.client.render.chunk.terrain.TerrainRenderPass.startDrawing:62 18%
          executing JNI.callPV 16%
  citadel  0.14 ms/frame, 3.8%
    76%   com.github.alexthe666.citadel.client.render.LightningRender.render:48  <- com.github.alexmodguy.alexscaves.client.render.entity.MagnetronRenderer.render:157
          hot com.github.alexthe666.citadel.client.render.LightningRender$BoltInstance.lambda$render$0:101 95%
          executing VertexConsumer.color:47 95%
    13%   com.github.alexthe666.citadel.client.render.LightningRender.update:64  <- com.github.alexmodguy.alexscaves.client.render.entity.MagnetronRenderer.spawnLightningBetweenEntities:196
          hot com.github.alexthe666.citadel.client.render.LightningBoltData$BoltQuads.addQuad:185 72%
          executing ArrayList.addAll 72%
  linggango_tweaks  0.098 ms/frame, 2.7%
    14%   com.misanthropy.linggango.linggango_tweaks.client.StuckArrowLayer.render:22  <- LivingEntityRenderer.render:131
          hot com.misanthropy.linggango.linggango_tweaks.client.StuckArrowLayer.render:76 86%
          executing VertexConsumer.overlayCoords:59 27%
    11%   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 18%
          executing VertexConsumer.color:47 32%
    9.0%  snownee.jade.util.ClientProxy.onClientTick:163  <- Minecraft.tick:1875
          hot snownee.jade.impl.config.PluginConfig.get:55 13%
          executing HashMap.hash 8.7%

STUTTERS (frames over 20 ms, grouped by what was happening during them)
  frames  worst     extra/min   cause
  23      119 ms    728 ms      unexplained (client tick)
  1       315 ms    384 ms      JVM safepoint for a stack sample (profiler overhead, not your mods)
  1       303 ms    369 ms      GPU / driver (buffer swap)
  9       49 ms     305 ms      GC pause (G1 Young Generation)
  1       95 ms     113 ms      gnetum: ForgeGui.lambda$gnetum$renderLayers$7 [mixin merged from me.decce.gnetum.mixins.ForgeGuiMixin]
  1       60 ms     71 ms       whole-process stall
  1       31 ms     35 ms       first-time class loading (forge)
  1       26 ms     29 ms       alexscaves: com.github.alexmodguy.alexscaves.server.entity.living.DinosaurEntity.tick
  1       20 ms     22 ms       pehkui: Entity.pehkui$tick [mixin handler from virtuoel.pehkui.mixin.EntityMixin]

  worst frames:
  05:27:37.079  315 ms   render 301 ms         JVM safepoint for a stack sample (profiler overhead, not your mods)
                             281 ms with every thread stopped for a stack sample (this profiler or spark); a thread was slow to reach the safepoint
  05:28:12.034  303 ms   present 300 ms        GPU / driver (buffer swap)
                             60 of 60 samples waiting in glfwSwapBuffers
  05:27:37.198  119 ms   client tick 107 ms    unexplained (client tick)
                             24 samples, no single owner
  05:28:14.872  95 ms    render 94 ms          gnetum: ForgeGui.lambda$gnetum$renderLayers$7 [mixin merged from me.decce.gnetum.mixins.ForgeGuiMixin]
                             2 of 4 samples, hottest line ForgeGui.gnetum$postEvent:3130 [mixin merged from me.decce.gnetum.mixins.ForgeGuiMixin]
  05:28:14.932  60 ms    client tick 56 ms     whole-process stall
                             every thread was stopped (OS scheduling, paging, or a JVM pause JFR did not see)
  05:27:38.762  49 ms    client tick 39 ms     GC pause (G1 Young Generation)
                             23 ms of the frame was a stop-the-world collection
  05:28:12.081  47 ms    client tick 38 ms     unexplained (client tick)
                             10 samples, no single owner
  05:27:42.333  32 ms    render 31 ms          GC pause (G1 Young Generation)
                             24 ms of the frame was a stop-the-world collection
  05:27:38.319  31 ms    render 27 ms          first-time class loading (forge)
                             14 ms loading classes for the first time
  05:27:48.108  31 ms    render 31 ms          GC pause (G1 Young Generation)
                             24 ms of the frame was a stop-the-world collection

MEMORY AND GC
  allocated 21.8 GB (458 MB/s, exact, all threads), max heap 10.0 GB
  9 GC pauses (0 old/full), 196 ms paused (0.4%), worst 24 ms, one every 5.4 s
  longest pauses:
    05:27:42.327  24 ms  G1 Young Generation, G1 Evacuation Pause
    05:27:48.101  24 ms  G1 Young Generation, G1 Evacuation Pause
    05:27:38.745  23 ms  G1 Young Generation, G1 Evacuation Pause
    05:28:17.643  23 ms  G1 Young Generation, G1 Evacuation Pause
    05:28:11.429  22 ms  G1 Young Generation, G1 Evacuation Pause
    05:27:54.013  21 ms  G1 Young Generation, G1 Evacuation Pause
    05:28:05.878  21 ms  G1 Young Generation, G1 Evacuation Pause
    05:28:00.209  20 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 73 MB over the recording
  by mod (JFR samples scaled to each thread's exact allocation; 98% of bytes covered):
    62 MB/s   14%    geckolib                  624 samples
        12%  software.bernie.geckolib.renderer.GeoRenderer.renderCubesOfBone:268 -> Matrix4f
        12%  software.bernie.geckolib.core.animation.AnimationController.getAnimationPointAtTick:885 -> AnimationPoint
        7.9%  software.bernie.geckolib.renderer.GeoRenderer.renderCubesOfBone:268 -> Matrix3f
    44 MB/s   9.7%   immediatelyfast           446 samples
        54%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 -> Vector3f
        9.2%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.lambda$addNewFallbackBuffer$1:188 -> [J
        7.8%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 -> Vector3f;
    44 MB/s   9.6%   minecraft (vanilla)       1,331 samples
        11%  PoseStack.pushPose:541 -> Matrix4f
        7.9%  LivingEntityRenderer.render:130 -> CallbackInfo
        6.8%  PoseStack.pushPose:541 -> Matrix3f
    22 MB/s   4.8%   embeddium                 495 samples
        21%  me.jellysquid.mods.sodium.client.util.sorting.VertexSorters$AbstractVertexSorter.mergeSort:33 -> [F
        19%  me.jellysquid.mods.sodium.client.util.sorting.RadixSort.radixSortDescending:12 -> [I
        18%  me.jellysquid.mods.sodium.client.util.sorting.AbstractSort.createIndexBuffer:6 -> [I
    21 MB/s   4.7%   pehkui                    215 samples
        27%  virtuoel.pehkui.api.ScaleData.calculateScaleForTick:309 -> Float
        14%  EntityRenderDispatcher.pehkui$render$before:9029 [mixin handler from virtuoel.pehkui.mixin.client.compat115plus.EntityRenderDispatcherMixin] -> Matrix4f
        12%  virtuoel.pehkui.api.TypedScaleModifier.getType -> 1386066044
    19 MB/s   4.2%   opposing_force            194 samples
        19%  com.unusualmodding.opposing_force.client.models.entity.skyvern.SkyvernBodyModel.setupAnim:80 -> ReferencePipeline$Head
        8.3%  com.unusualmodding.opposing_force.client.renderer.layers.RamblerSkullLayer.resetDrawForAllParts:50 -> ReferencePipeline$Head
        7.8%  com.unusualmodding.opposing_force.client.models.entity.skyvern.SkyvernBodyModel.setupAnim:80 -> ReferencePipeline$7
    18 MB/s   4.0%   legendary_monsters        214 samples
        9.7%  net.miauczel.legendary_monsters.entity.client.Model.BeheadedKnightModel.setupAnim:192 -> ReferencePipeline$Head
        8.1%  net.miauczel.legendary_monsters.entity.client.Model.ResurrectedKnightModel.setupAnim:113 -> ReferencePipeline$Head
    16 MB/s   3.5%   citadel                   168 samples
        31%  com.github.alexthe666.citadel.client.render.LightningBoltData$BoltQuads.addQuad:185 -> Object;
        7.4%  com.github.alexthe666.citadel.client.render.LightningBoltData.createQuads:140 -> Vec3
        6.7%  com.github.alexthe666.citadel.client.render.LightningBoltData$BoltQuads.addQuad:185 -> Arrays$ArrayList
    15 MB/s   3.2%   flerovium                 149 samples
        30%  com.moepus.flerovium.functions.FastEntityRenderer.render:106 -> CallbackInfo
        23%  com.moepus.flerovium.functions.FastSimpleBakedModelRenderer.renderQuadList:137 -> ImmutableCollections$ListItr
        9.4%  ItemEntityRenderer.skipSuperRender:549 [mixin redirect from com.moepus.flerovium.mixins.Item.ItemEntityRenderMixin] -> MutableComponent
    13 MB/s   2.8%   collections_of_optimizations 1,751 samples
        16%  com.misanthropy.collections_of_optimizations.core.NbtFastLoad.loadCompound:131 -> Object;
        11%  com.misanthropy.collections_of_optimizations.core.NbtFastLoad.loadList:191 -> Object;
        7.7%  com.github.L_Ender.lionfishapi.client.model.Animations.ModelAnimator.coo$pooledTransform:543 [mixin redirect from com.misanthropy.collections_of_optimizations.mixin.lionfishapi.MixinLionfishModelAnimator] -> HashMap$Node

INTEGRATED SERVER (single player; this is world lag, not FPS)
  982 ticks, mspt mean 18 ms, p50 15 ms, p95 36 ms, worst 341 ms, 12 over 50 ms
    1.43 ms/tick  7.9%   collections_of_optimizations ServerLevel.coo$growthTick:10142 [mixin modifyExpressionValue from com.misanthropy.collections_of_optimizations.mixin.immersiveweathering.MixinServerLevelGrowthTick]
    1.18 ms/tick  6.6%   radium                    EntitySectionStorage.forEachInBox:555 [mixin handler from me.jellysquid.mods.lithium.mixin.entity.fast_retrieval.SectionedEntityCacheMixin]
    1.16 ms/tick  6.5%   minecraft (vanilla)       
    0.88 ms/tick  4.9%   goety                     com.Polarice3.Goety.common.entities.ally.Summoned.tick:116
    0.88 ms/tick  4.9%   cataclysm                 com.github.L_Ender.cataclysm.entity.projectile.EarthQuake_Entity.tick:87
    0.64 ms/tick  3.6%   pehkui                    Entity.pehkui$tick:38738 [mixin handler from virtuoel.pehkui.mixin.EntityMixin]
    0.61 ms/tick  3.4%   forge (loader, events)    
    0.51 ms/tick  2.8%   terramity                 net.mcreator.terramity.TerramityMod.tick:105

THREADS (exact CPU per thread group; 'runs' = what JFR saw executing on it)
  the game used 1.66 of 16 cores, whole machine 28% busy
  cores  n    allocated   group                            runs
  0.92   1    16.3 GB     Render thread                    collections_of_optimizations 13%, flerovium 7.0%, geckolib 6.5%
  0.34   1    2.7 GB      Server thread                    minecraft 12%, radium 7.9%, collections_of_optimizations 6.3%
  0.10   15   1.2 GB      ForkJoinPool.commonPool-worker-# lithoform 60%, collections_of_optimizations 14%, minecraft 7.0%
  0.10   10   19 MB       Flywheel Task Executor ##        collections_of_optimizations 55%, flywheel 45%
  0.05   1    171 MB      Linggango Streams                lithoform 48%, linggango_tweaks 47%
  0.02   1    526 MB      JFR Event Stream #               no JFR samples (idle or native)

ENTITIES, BLOCK ENTITIES, SCREENS (exact timings; per second of recording)
  entity render:
    44 ms/s    87/s     511 us   alexscaves:magnetron                        worst 281 ms at 2532, 312, 791
    41 ms/s    11,190/s 4 us     minecraft:item                              worst 21 ms at 2553, 310, 742
    24 ms/s    1,053/s  23 us    born_in_chaos_v1:baby_spider                worst 3.68 ms at 2531, 310, 792
    17 ms/s    261/s    66 us    cataclysm:aptrgangr                         worst 0.80 ms at 2530, 310, 803
    13 ms/s    259/s    49 us    cataclysm:amethyst_crab                     worst 1.09 ms at 2519, 310, 790
    12 ms/s    770/s    16 us    terramity:royal_gnome                       worst 2.91 ms at 2515, 310, 786
    12 ms/s    2,514/s  5 us     opposing_force:skyvern_segment              worst 2.99 ms at 2457, 316, 788
    12 ms/s    359/s    33 us    legendary_monsters:resurrected_knight       worst 0.52 ms at 2554, 310, 769
  entity tick:
    19 ms/s    20/s     940 us   minecraft:player                            worst 42 ms at 2527, 310, 778
    11 ms/s    2,336/s  5 us     minecraft:item                              worst 1.74 ms at 2541, 310, 752
    6.19 ms/s  399/s    15 us    cataclysm:earthquake                        worst 0.81 ms at 2523, 310, 792
    4.68 ms/s  201/s    23 us    born_in_chaos_v1:baby_spider                worst 0.38 ms at 2555, 310, 771
    4.45 ms/s  131/s    34 us    terramity:royal_gnome                       worst 0.39 ms at 2522, 310, 777
    2.23 ms/s  59/s     38 us    cataclysm:amethyst_crab                     worst 0.87 ms at 2522, 310, 790
    2.04 ms/s  20/s     101 us   alexscaves:tremorsaurus                     worst 4.52 ms at 2512, 310, 750
  server entity tick:
    15 ms/s    406/s    37 us    cataclysm:earthquake                        worst 10 ms at 2531, 310, 800
    13 ms/s    2,365/s  5 us     minecraft:item                              worst 2.62 ms at 2527, 310, 802
    12 ms/s    126/s    94 us    terramity:royal_gnome                       worst 26 ms at 2516, 310, 785
    11 ms/s    58/s     193 us   cataclysm:aptrgangr                         worst 281 ms at 2542, 310, 759
    11 ms/s    219/s    49 us    born_in_chaos_v1:baby_spider                worst 2.24 ms at 2525, 310, 754
    6.48 ms/s  36/s     179 us   terramity:gob                               worst 3.60 ms at 2545, 310, 792
    5.63 ms/s  56/s     100 us   cataclysm:amethyst_crab                     worst 3.79 ms at 2522, 310, 790
    5.00 ms/s  42/s     118 us   cataclysm:elite_draugr                      worst 3.52 ms at 2537, 310, 770
  screen:
    0.71 ms/s  6/s      114 us   net.minecraft.client.gui.screens.ChatScreen worst 0.60 ms

JVM AND I/O
  class loads over 1 ms: 11 (26 ms), on the render/server thread 8 (21 ms)
  non-GC safepoints: 654 ms total (last: ThreadDump)
  log output: 0.3 lines/s
  exceptions thrown: 45.9/s, top: 35.6/s  CommandSyntaxException from terramity at net.mcreator.terramity.WaveEffect.lambda$createShockwave$0:51

MOD VERSIONS (mods named in the findings)
  immediatelyfast 1.5.5+1.20.4;  collections_of_optimizations 5.6;  geckolib 4.8.4;  flerovium 1.2.19;  
  embeddium 0.3.32-beta.114-dirty+mc1.20.1;  citadel 2.6.3;  linggango_tweaks 7.39;  pehkui 3.8.2+1.20.1-forge;  
  cataclysm 3.16;  goety 2.5.58.4;  ;  alexscaves 2.0.2;  born_in_chaos_v1 1.7.5;  

RECORDING
  stack sampler every 5 ms: 9,636 render-thread, 3,282 server-thread samples (server only while ticking)
  JFR on (cpu, allocation, locks, file io, class loading, safepoints, exceptions): 17,428 CPU samples, 13,412 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
