WhatsLaggin report (manual)  41.2 s recorded, ended 2026-10-23 04:13:21
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, 275 entities loaded

VERDICT
  202 fps average (4.95 ms per frame), 1% low 49 fps, 0.1% low 38 fps.
  CPU-BOUND: the render thread is busy for 4.91 ms of each frame; the GPU wait is only 0.044 ms. Cutting render-thread work raises FPS directly.
  31 stutters over 20 ms (45.1 per minute), worst 32 ms. Biggest cause: unexplained (client tick).

WHAT TO FIX (ranked by time lost per second of play)
  1. [cpu] immediatelyfast costs 0.62 ms per frame on the render thread
       13% of render-thread CPU time, mostly in world, 21% in its own code (rest is vanilla/library code it called)
       48%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endLastBatch:105   <- LevelRenderer.renderLevel:1228
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (45%), executing GL15C.nglBufferSubData (36%)
       37%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:116   <- com.Polarice3.Goety.client.particles.WindTrailParticle.render:103
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (83%), executing GL15C.nglBufferSubData (10%)
       8.2%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.getBuffer:68   <- LivingEntityRenderer.render:124
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.addNewFallbackBuffer:187 (42%), executing ObjectLinkedOpenHashSet.add:410 (2.4%)
       removing this cost entirely: about 202 -> 231 fps
  2. [stutter] Stutter: unexplained (client tick)
       20 frames over 20 ms, worst 31 ms, 529 ms of extra frame time per minute
  3. [tick] Each client tick takes 8.47 ms
       20 ticks a second run inline on the render thread, so 20 frames a second each take 8.47 ms longer than the rest (uneven frame pacing).
       collections_of_optimizations 0.46 ms per tick
       opposing_force 0.14 ms per tick
       goety 0.49 ms per tick
       linggango_tweaks 0.30 ms per tick
       pehkui 0.46 ms per tick
  4. [cpu] collections_of_optimizations costs 0.41 ms per frame on the render thread
       8.3% of render-thread CPU time, mostly in world, 93% in its own code (rest is vanilla/library code it called)
       26%  com.misanthropy.collections_of_optimizations.core.GeckoFastCube.tryRender:77   <- software.bernie.geckolib.renderer.GeoRenderer.renderCube:533
       14%  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 (1.1%)
       11%  KeyframeAnimations.coo$leanAnimate:559 [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] (32%), executing AnimationChannel$Interpolations.apply (8.3%)
       removing this cost entirely: about 202 -> 220 fps
  5. [cpu] geckolib costs 0.38 ms per frame on the render thread
       7.7% of render-thread CPU time, mostly in world, 66% 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 (8.2%), executing PoseStack.mulPose:50 (24%)
       5.6%  TextureManager.wrapAnimatableTexture:1524 [mixin handler from software.bernie.geckolib.mixin.client.TextureManagerMixin]   <- TextureManager.getTexture
               executing HashMap.hash (89%)
       removing this cost entirely: about 202 -> 219 fps
  6. [cpu] flerovium costs 0.22 ms per frame on the render thread
       4.6% of render-thread CPU time, mostly in world, 90% in its own code (rest is vanilla/library code it called)
       72%  ModelPart.onRender:1031 [mixin handler from com.moepus.flerovium.mixins.Entity.ModelPartMixin]   <- ModelPart.render
               hot: com.moepus.flerovium.functions.FastEntityRenderer.renderCuboids:123 (38%), executing ModelPart.translateAndRotate:3620 (1.9%)
       13%  ItemRenderer.onRrenderModelLists:1054 [mixin modify from com.moepus.flerovium.mixins.Item.ItemRendererMixin]   <- ItemRenderer.render:147
               hot: com.moepus.flerovium.functions.FastSimpleBakedModelRenderer.renderQuadList:140 (54%), executing ImmutableCollections$ListItr.next (6.3%)
       8.1%  ItemEntityRenderer.skipSuperRender:550 [mixin redirect from com.moepus.flerovium.mixins.Item.ItemEntityRenderMixin]   <- ItemEntityRenderer.render:99
               executing ASMEventHandler.invoke:55 (47%)
       removing this cost entirely: about 202 -> 212 fps
  7. [cpu] embeddium costs 0.22 ms per frame on the render thread
       4.4% of render-thread CPU time, mostly in world, 83% in its own code (rest is vanilla/library code it called)
       38%  me.jellysquid.mods.sodium.client.util.sorting.VertexSorters$AbstractVertexSorter.sort:29   <- BufferBuilder.putSortedQuadIndices:6098
               hot: me.jellysquid.mods.sodium.client.util.sorting.InsertionSort.insertionSort:25 (35%)
       23%  net.caffeinemc.mods.sodium.api.math.MatrixHelper.rotateZYX:126   <- ModelPart.translateAndRotate:3614
               executing Matrix4f.rotateAffineZYX:5536 (62%)
       11%  ShaderInstance.uploadUniforms:4125 [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] (18%), executing GL20C.nglUniform1fv (15%)
       removing this cost entirely: about 202 -> 211 fps
  8. [cpu] opposing_force costs 0.21 ms per frame on the render thread
       4.3% of render-thread CPU time, mostly in world, 23% in its own code (rest is vanilla/library code it called)
       65%  com.unusualmodding.opposing_force.client.particles.lightning.LightningParticle.render:177   <- ParticleEngine.render:3248
               hot: com.unusualmodding.opposing_force.client.particles.lightning.LightningRenderer$BoltInstance.lambda$render$0:149 (97%), executing VertexConsumer.color:47 (92%)
       8.7%  com.unusualmodding.opposing_force.network.LightningSyncPacket.handle:100   <- BlockableEventLoop.lambda$submitAsync$0:67
               hot: com.unusualmodding.opposing_force.client.particles.lightning.LightningBoltData$BoltQuads.addQuad:301 (50%), executing ArrayList.addAll (50%)
       6.6%  com.unusualmodding.opposing_force.client.renderer.layers.RamblerSkullLayer.render:21   <- LivingEntityRenderer.render:131
               hot: com.unusualmodding.opposing_force.client.renderer.layers.RamblerSkullLayer.onlyDrawSelectedPart:45 (39%), executing AbstractPipeline.wrapSink (13%)
       removing this cost entirely: about 202 -> 211 fps
  9. [world] minecraft:item (entity render) costs 23 ms every second
       252,374 calls, 4 us each, worst 14 ms at 2549, 310, 780
 10. [stutter] Stutter: unexplained (render)
       4 frames over 20 ms, worst 24 ms, 106 ms of extra frame time per minute

FRAMES
  8,316 frames   p50 3.80 ms   p95 14 ms   p99 18 ms   worst 32 ms
  per frame:  tasks 0.10 ms  client tick 0.84 ms  render 3.87 ms  present 0.046 ms  other 0.095 ms
  inside those:  swap 0.044 ms  world 3.59 ms  hud 0.24 ms  screen 0.003 ms
  client tick: 8.47 ms per tick, 20.0 ticks per second
  GPU time per pass (mean per frame, each pass also holds what mods drew at the stage before it):
    0.049 ms  1.9%  sky and frame setup   (p95 0.044 ms)
    0.050 ms  1.9%  solid terrain   (p95 0.092 ms)
    0.031 ms  1.2%  cutout mipped terrain   (p95 0.031 ms)
    0.000 ms  <0.1%  cutout terrain   (p95 0.002 ms)
    1.21 ms  45%  entities   (p95 2.42 ms)
    0.37 ms  14%  block entities   (p95 0.90 ms)
    0.080 ms  3.0%  translucent terrain   (p95 0.34 ms)
    0.000 ms  <0.1%  tripwire   (p95 0.001 ms)
    0.006 ms  0.2%  particles   (p95 0.015 ms)
    0.047 ms  1.8%  weather and clouds   (p95 0.047 ms)
    0.007 ms  0.2%  end of level render   (p95 0.083 ms)
    0.33 ms  12%  hand and post effects   (p95 0.50 ms)
    0.24 ms  8.9%  hud   (p95 0.39 ms)
    0.25 ms  9.4%  screens and rest of frame   (p95 1.39 ms)

RENDER THREAD CPU BY MOD (sampled; excludes GPU wait, fps limiter and blocked time)
  8,214 samples: CPU work 99%, GPU wait 1.2%, limiter 0.0%, blocked on other threads <0.1%
  mods caused 88% of render-thread CPU work, vanilla/forge/driver the rest
  10% 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.62 ms   13%    21%   immediatelyfast              world
  0.41 ms   8.3%   93%   collections_of_optimizations world
  0.40 ms   8.1%   95%   minecraft (vanilla)          world
  0.38 ms   7.7%   66%   geckolib                     world
  0.22 ms   4.6%   90%   flerovium                    world
  0.22 ms   4.4%   83%   embeddium                    world
  0.21 ms   4.3%   23%   opposing_force               world
  0.18 ms   3.7%   32%   goety                        world
  0.17 ms   3.4%   100%  forge (loader, events)       world
  0.12 ms   2.4%   43%   linggango_tweaks             world
  0.094 ms  1.9%   94%   pehkui                       client tick
  0.078 ms  1.6%   25%   legendary_monsters           world
  0.076 ms  1.6%   13%   oculus                       world
  0.074 ms  1.5%   31%   gnetum                       hud
  0.070 ms  1.4%   31%   asyncparticles               world
  1.58 ms   154 more below 0.5% each

HOT PATHS (where each mod's render-thread time goes; SRG names translated; <- = called from)
  immediatelyfast  0.62 ms/frame, 13%
    48%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endLastBatch:105  <- LevelRenderer.renderLevel:1228
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 45%
          executing GL15C.nglBufferSubData 36%
    37%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:116  <- com.Polarice3.Goety.client.particles.WindTrailParticle.render:103
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 83%
          executing GL15C.nglBufferSubData 10%
    8.2%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.getBuffer:68  <- LivingEntityRenderer.render:124
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.addNewFallbackBuffer:187 42%
          executing ObjectLinkedOpenHashSet.add:410 2.4%
  collections_of_optimizations  0.41 ms/frame, 8.3%
    26%   com.misanthropy.collections_of_optimizations.core.GeckoFastCube.tryRender:77  <- software.bernie.geckolib.renderer.GeoRenderer.renderCube:533
    14%   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 1.1%
    11%   KeyframeAnimations.coo$leanAnimate:559 [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] 32%
          executing AnimationChannel$Interpolations.apply 8.3%
  minecraft (vanilla)  0.40 ms/frame, 8.1%, hottest vanilla methods:
    9.4%  Entity.shouldRender:1562  <- me.decce.ixeris.RenderThreadStarter.run:39
    9.0%  EntityRenderDispatcher.getRenderer:530  <- me.decce.ixeris.RenderThreadStarter.run:39
    7.0%  Entity.fireImmune:1142  <- LevelRenderer.wrap_renderEntity_FancyMenu:21161 [mixin wrapOperation from de.keksuccino.fancymenu.mixin.mixins.common.client.MixinLevelRenderer]
  geckolib  0.38 ms/frame, 7.7%
    94%   software.bernie.geckolib.renderer.GeoEntityRenderer.render:157  <- EntityRenderDispatcher.mixinextras$bridge$m_7392_$80
          hot software.bernie.geckolib.util.RenderUtils.rotateMatrixAroundCube:61 8.2%
          executing PoseStack.mulPose:50 24%
    5.6%  TextureManager.wrapAnimatableTexture:1524 [mixin handler from software.bernie.geckolib.mixin.client.TextureManagerMixin]  <- TextureManager.getTexture
          executing HashMap.hash 89%
  flerovium  0.22 ms/frame, 4.6%
    72%   ModelPart.onRender:1031 [mixin handler from com.moepus.flerovium.mixins.Entity.ModelPartMixin]  <- ModelPart.render
          hot com.moepus.flerovium.functions.FastEntityRenderer.renderCuboids:123 38%
          executing ModelPart.translateAndRotate:3620 1.9%
    13%   ItemRenderer.onRrenderModelLists:1054 [mixin modify from com.moepus.flerovium.mixins.Item.ItemRendererMixin]  <- ItemRenderer.render:147
          hot com.moepus.flerovium.functions.FastSimpleBakedModelRenderer.renderQuadList:140 54%
          executing ImmutableCollections$ListItr.next 6.3%
    8.1%  ItemEntityRenderer.skipSuperRender:550 [mixin redirect from com.moepus.flerovium.mixins.Item.ItemEntityRenderMixin]  <- ItemEntityRenderer.render:99
          executing ASMEventHandler.invoke:55 47%
  embeddium  0.22 ms/frame, 4.4%
    38%   me.jellysquid.mods.sodium.client.util.sorting.VertexSorters$AbstractVertexSorter.sort:29  <- BufferBuilder.putSortedQuadIndices:6098
          hot me.jellysquid.mods.sodium.client.util.sorting.InsertionSort.insertionSort:25 35%
    23%   net.caffeinemc.mods.sodium.api.math.MatrixHelper.rotateZYX:126  <- ModelPart.translateAndRotate:3614
          executing Matrix4f.rotateAffineZYX:5536 62%
    11%   ShaderInstance.uploadUniforms:4125 [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] 18%
          executing GL20C.nglUniform1fv 15%
  opposing_force  0.21 ms/frame, 4.3%
    65%   com.unusualmodding.opposing_force.client.particles.lightning.LightningParticle.render:177  <- ParticleEngine.render:3248
          hot com.unusualmodding.opposing_force.client.particles.lightning.LightningRenderer$BoltInstance.lambda$render$0:149 97%
          executing VertexConsumer.color:47 92%
    8.7%  com.unusualmodding.opposing_force.network.LightningSyncPacket.handle:100  <- BlockableEventLoop.lambda$submitAsync$0:67
          hot com.unusualmodding.opposing_force.client.particles.lightning.LightningBoltData$BoltQuads.addQuad:301 50%
          executing ArrayList.addAll 50%
    6.6%  com.unusualmodding.opposing_force.client.renderer.layers.RamblerSkullLayer.render:21  <- LivingEntityRenderer.render:131
          hot com.unusualmodding.opposing_force.client.renderer.layers.RamblerSkullLayer.onlyDrawSelectedPart:45 39%
          executing AbstractPipeline.wrapSink 13%
  goety  0.18 ms/frame, 3.7%
    39%   com.Polarice3.Goety.client.particles.WindTrailParticle.render:95  <- ParticleEngine.render:3248
          executing VertexConsumer.color:47 30%
    16%   Minecraft.shouldEntityAppearGlowing:25971 [mixin handler from com.Polarice3.Goety.mixin.MinecraftMixin]  <- Minecraft.shouldEntityAppearGlowing
          hot com.Polarice3.Goety.utils.WandUtil.findWand:63 45%
          executing LivingEntity.getMainHandItem:1855 51%
    4.0%  com.Polarice3.Goety.common.entities.ally.Summoned.tick:117  <- com.ratrod.goetyhostility.common.entities.hostile.HostileWildfire.tick:162
          hot com.Polarice3.Goety.common.entities.neutral.Owned.tick:89 33%
          executing ASMEventHandler.invoke:53 8.3%

STUTTERS (frames over 20 ms, grouped by what was happening during them)
  frames  worst     extra/min   cause
  20      31 ms     529 ms      unexplained (client tick)
  4       24 ms     106 ms      unexplained (render)
  1       32 ms     40 ms       modernfix: org.embeddedt.modernfix.dynamicresources.DynamicBakedModelProvider.get
  1       28 ms     35 ms       first-time class loading (ftbquests)
  1       25 ms     31 ms       linggango_tweaks: com.misanthropy.linggango.linggango_tweaks.tweak.l2.ReflectRework.tick
  1       21 ms     25 ms       collections_of_optimizations: com.misanthropy.collections_of_optimizations.core.GeckoEasingPrimitives.apply
  1       20 ms     24 ms       immediatelyfast: VertexBuffer.optimizeVertexDataUploading [mixin redirect from net.raphimc.immediatelyfast.injection.mixins.fast_buffer_upload.MixinVertexBuffer]

  worst frames:
  04:12:48.186  32 ms    render 21 ms          modernfix: org.embeddedt.modernfix.dynamicresources.DynamicBakedModelProvider.get
                             3 of 7 samples, hottest line org.embeddedt.modernfix.dynamicresources.DynamicBakedModelProvider.get:162
  04:12:41.891  31 ms    client tick 22 ms     unexplained (client tick)
                             5 samples, no single owner
  04:12:56.687  28 ms    tasks 9.42 ms         first-time class loading (ftbquests)
                             11 ms loading classes for the first time
  04:12:49.580  25 ms    client tick 17 ms     unexplained (client tick)
                             5 samples, no single owner
  04:13:01.630  25 ms    client tick 8.31 ms   linggango_tweaks: com.misanthropy.linggango.linggango_tweaks.tweak.l2.ReflectRework.tick
                             1 of 2 samples, hottest line com.misanthropy.linggango.linggango_tweaks.tweak.l2.ReflectRework.tick:66
  04:12:49.180  24 ms    render 12 ms          unexplained (render)
                             4 samples, no single owner
  04:12:50.482  23 ms    render 12 ms          unexplained (render)
                             5 samples, no single owner
  04:13:15.580  23 ms    client tick 19 ms     unexplained (client tick)
                             3 samples, no single owner
  04:12:44.232  23 ms    client tick 11 ms     unexplained (client tick)
                             5 samples, no single owner
  04:12:50.585  22 ms    client tick 13 ms     unexplained (client tick)
                             4 samples, no single owner

MEMORY AND GC
  allocated 16.8 GB (419 MB/s, exact, all threads), max heap 10.0 GB
  14 GC pauses (0 old/full), 150 ms paused (0.4%), worst 12 ms, one every 2.9 s
  heap after GC 6.6 GB (66% of max, old garbage stays until the next marking cycle), changed by 25 MB over the recording
  by mod (JFR samples scaled to each thread's exact allocation; 99% of bytes covered):
    58 MB/s   14%    immediatelyfast           296 samples
        41%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 -> Vector3f
        15%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.lambda$addNewFallbackBuffer$1:188 -> [J
        9.1%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.lambda$addNewFallbackBuffer$1:188 -> Object;
    58 MB/s   14%    geckolib                  295 samples
        13%  software.bernie.geckolib.core.animation.AnimationController.getAnimationPointAtTick:885 -> AnimationPoint
        13%  software.bernie.geckolib.renderer.GeoRenderer.renderCubesOfBone:268 -> Matrix4f
        11%  software.bernie.geckolib.renderer.GeoRenderer.renderCubesOfBone:268 -> Matrix3f
    40 MB/s   9.6%   minecraft (vanilla)       1,759 samples
        11%  LivingEntityRenderer.render:130 -> CallbackInfo
        10%  PoseStack.pushPose:541 -> Matrix4f
    30 MB/s   7.1%   opposing_force            176 samples
        13%  com.unusualmodding.opposing_force.client.particles.lightning.LightningBoltData$BoltQuads.addQuad:301 -> Object;
        5.3%  com.unusualmodding.opposing_force.client.particles.lightning.LightningParticle.render:175 -> Matrix4f
    19 MB/s   4.6%   embeddium                 740 samples
        25%  me.jellysquid.mods.sodium.client.util.sorting.AbstractSort.createIndexBuffer:6 -> [I
        25%  me.jellysquid.mods.sodium.client.util.sorting.VertexSorters$AbstractVertexSorter.mergeSort:33 -> [F
        15%  me.jellysquid.mods.sodium.client.util.sorting.MergeSort.mergeSort:60 -> [I
    15 MB/s   3.6%   goety                     94 samples
        14%  com.Polarice3.Goety.client.particles.WindTrailParticle.render:78 -> Object;
        14%  com.Polarice3.Goety.client.particles.WindTrailParticle.getTrailPosition:138 -> Vec3
        9.1%  com.Polarice3.Goety.client.particles.WindTrailParticle.render:78 -> Matrix4f
    13 MB/s   3.1%   eeeabsmobs                66 samples
        21%  com.eeeab.animate.client.model.ModHierarchicalModel.getAnyDescendantWithName:189 -> ReferencePipeline$Head
        14%  com.eeeab.animate.client.model.ModHierarchicalModel.resetToDefaultPose:41 -> ReferencePipeline$Head
        6.1%  com.eeeab.animate.client.model.ModHierarchicalModel.getAnyDescendantWithName:189 -> ReferencePipeline$7
    12 MB/s   2.9%   legendary_monsters        101 samples
        12%  net.miauczel.legendary_monsters.entity.client.Model.BeheadedKnightModel.setupAnim:192 -> ReferencePipeline$Head
        8.3%  net.miauczel.legendary_monsters.entity.client.Model.BeheadedKnightModel.setupAnim:192 -> ReferencePipeline$7
    10 MB/s   2.5%   asyncparticles            840 samples
        16%  ParticleEngine.lambda$tickTail$3:13672 [mixin merged from forge.fun.qu_an.minecraft.asyncparticles.client.mixin.core.particle.gpu_acceleration.MixinParticleEngine] -> AABB
        15%  forge.fun.qu_an.minecraft.asyncparticles.client.util.IterationSafeArrayList.listIterator:163 -> IterationSafeArrayList$ListItr
        9.5%  forge.fun.qu_an.minecraft.asyncparticles.client.compat.create.CreateUtil.forEachContraption:47 -> HashMap$ValueIterator
    10 MB/s   2.4%   pehkui                    52 samples
        22%  EntityRenderDispatcher.pehkui$render$before:9031 [mixin handler from virtuoel.pehkui.mixin.client.compat115plus.EntityRenderDispatcherMixin] -> Matrix3f
        16%  EntityRenderDispatcher.pehkui$render$before:9031 [mixin handler from virtuoel.pehkui.mixin.client.compat115plus.EntityRenderDispatcherMixin] -> Matrix4f
        14%  EntityRenderDispatcher.pehkui$render$before:9029 [mixin handler from virtuoel.pehkui.mixin.client.compat115plus.EntityRenderDispatcherMixin] -> Matrix4f

INTEGRATED SERVER (single player; this is world lag, not FPS)
  824 ticks, mspt mean 19 ms, p50 19 ms, p95 30 ms, worst 83 ms, 2 over 50 ms
    1.37 ms/tick  7.1%   minecraft (vanilla)       
    1.24 ms/tick  6.4%   collections_of_optimizations ServerLevel.coo$growthTick:10142 [mixin modifyExpressionValue from com.misanthropy.collections_of_optimizations.mixin.immersiveweathering.MixinServerLevelGrowthTick]
    1.23 ms/tick  6.4%   radium                    EntitySectionStorage.forEachInBox:555 [mixin handler from me.jellysquid.mods.lithium.mixin.entity.fast_retrieval.SectionedEntityCacheMixin]
    0.91 ms/tick  4.7%   goety                     com.Polarice3.Goety.common.entities.neutral.Owned.tick:90
    0.82 ms/tick  4.2%   forge (loader, events)    
    0.69 ms/tick  3.6%   cataclysm                 com.github.L_Ender.cataclysm.entity.InternalAnimationMonster.Draugar.Aptrgangr_Entity.tick:347
    0.61 ms/tick  3.2%   pehkui                    Entity.pehkui$tick:38737 [mixin handler from virtuoel.pehkui.mixin.EntityMixin]
    0.58 ms/tick  3.0%   ending_library            Level.guardEntityTick:14052 [mixin handler from com.mega.endinglib.mixin.time.time.LevelMixin]

THREADS (exact CPU per thread group; 'runs' = what JFR saw executing on it)
  the game used 1.56 of 16 cores, whole machine 28% busy
  cores  n    allocated   group                            runs
  0.96   1    13.5 GB     Render thread                    collections_of_optimizations 15%, geckolib 6.6%, flerovium 5.8%
  0.37   1    2.5 GB      Server thread                    minecraft 12%, collections_of_optimizations 6.9%
  0.05   10   13 MB       Flywheel Task Executor ##        too few samples
  0.02   2    17 MB       Netty Server IO ##               no JFR samples (idle or native)
  0.02   1    190 MB      JFR Event Stream #               no JFR samples (idle or native)

ENTITIES, BLOCK ENTITIES, SCREENS (exact timings; per second of recording)
  entity render:
    23 ms/s    6,123/s  4 us     minecraft:item                              worst 14 ms at 2549, 310, 780
    12 ms/s    140/s    89 us    born_in_chaos_v1:nightmare_stalker          worst 0.42 ms at 2502, 310, 789
    12 ms/s    271/s    43 us    legendary_monsters:beheaded_knight          worst 0.68 ms at 2556, 310, 764
    11 ms/s    404/s    28 us    terramity:gob                               worst 5.15 ms at 2533, 310, 796
    9.64 ms/s  233/s    41 us    legendary_monsters:resurrected_knight       worst 11 ms at 2512, 310, 754
    9.61 ms/s  154/s    63 us    cataclysm:royal_draugr                      worst 4.41 ms at 2534, 310, 748
    9.53 ms/s  321/s    30 us    terramity:uvogre                            worst 0.89 ms at 2548, 310, 784
    8.94 ms/s  151/s    59 us    cataclysm:ignited_revenant                  worst 0.82 ms at 2532, 311, 776
  entity tick:
    13 ms/s    20/s     653 us   minecraft:player                            worst 11 ms at 2527, 310, 778
    8.49 ms/s  1,687/s  5 us     minecraft:item                              worst 0.76 ms at 2566, 310, 764
    3.58 ms/s  120/s    30 us    opposing_force:fire_slime                   worst 0.67 ms at 2513, 310, 766
  server entity tick:
    10 ms/s    37/s     273 us   terramity:conjurling                        worst 2.67 ms at 2516, 310, 796
    9.06 ms/s  1,786/s  5 us     minecraft:item                              worst 11 ms at 2539, 310, 763
    8.72 ms/s  135/s    65 us    opposing_force:fire_slime                   worst 1.96 ms at 2553, 310, 769
    8.56 ms/s  38/s     226 us   terramity:gob                               worst 3.47 ms at 2523, 310, 795
    6.17 ms/s  48/s     128 us   cataclysm:ignited_revenant                  worst 3.39 ms at 2506, 310, 790
    5.89 ms/s  53/s     110 us   terramity:royal_gnome                       worst 6.90 ms at 2521, 310, 793
    5.78 ms/s  38/s     150 us   terramity:thunker                           worst 2.00 ms at 2510, 310, 792
    5.78 ms/s  39/s     150 us   terramity:gatmancer                         worst 1.70 ms at 2518, 310, 791
  screen:
    0.64 ms/s  9/s      75 us    net.minecraft.client.gui.screens.ChatScreen worst 0.22 ms

JVM AND I/O
  class loads over 1 ms: 15 (38 ms), on the render/server thread 15 (38 ms)
  non-GC safepoints: 14 ms total (last: ThreadDump)
  log output: 0.2 lines/s
  exceptions thrown: 12.2/s, top: 2.0/s  NoDiscordClientException from optimized_rpc at dev.firstdark.rpc.exceptions.NoDiscordClientException.<init>:12

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.113-dirty+mc1.20.1;  opposing_force 1.20.1-2.0.3;  goety 2.5.58.4;  
  linggango_tweaks 7.39;  pehkui 3.8.2+1.20.1-forge;  ;  

RECORDING
  stack sampler every 5 ms: 8,214 render-thread, 3,109 server-thread samples (server only while ticking)
  JFR on (cpu, allocation, locks, file io, class loading, safepoints, exceptions): 2,501 CPU samples, 11,422 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
