WhatsLaggin report (manual)  1m03s recorded, ended 2026-10-22 14:21:29
Minecraft 1.20.1, Forge 47.4.20, 462 mods, Java 17.0.8 OpenJDK 64-Bit Server VM, max heap 10.0 GB
GPU AMD Radeon RX 9070 XT (ATI Technologies Inc.), OpenGL 4.6.0 Core Profile Context 26.10.1.261008
CPU 16x AMD Ryzen 7 7800X3D 8-Core Processor, 16 threads, 31.4 GB RAM
Video 3440x1440 fullscreen @180 Hz, vsync off, fps limit unlimited, render distance 16, simulation 7, graphics fancy, shaders off
World minecraft:overworld, 121 entities loaded

VERDICT
  915 fps average (1.09 ms per frame), 1% low 300 fps, 0.1% low 195 fps.
  GPU-BOUND: 0.43 ms of each frame (39%) is the CPU waiting for the GPU. The CPU part is only 0.67 ms.
  Optimising mod code on the render thread will not raise FPS until the GPU load drops.
  No stutters over 20 ms.

WHAT TO FIX (ranked by time lost per second of play)
  1. [gpu] GPU-bound: 39% of every frame is spent waiting on the GPU
       The CPU finishes its part of a frame in 0.67 ms and then waits 0.43 ms in glfwSwapBuffers for the GPU.
       GPU time for the frame's draw calls: p50 0.75 ms, p95 1.02 ms (timer queries).
       Cutting CPU work (mods below) will NOT raise FPS until GPU load drops.
       Biggest GPU levers: render distance (16), resolution (3440x1440), graphics mode (fancy)
  2. [world] crittersandcompanions:leaf_insect (entity render) costs 20 ms every second
       45,552 calls, 28 us each, worst 0.30 ms at 2497, 69, 765
  3. [cpu] embeddium costs 0.087 ms per frame on the render thread
       14% of render-thread CPU time, mostly in world, 51% in its own code (rest is vanilla/library code it called)
       75%  me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.drawChunkLayer:284   <- LevelRenderer.renderChunkLayer:40702
               hot: me.jellysquid.mods.sodium.client.render.chunk.DefaultChunkRenderer.fillCommandBuffer:165 (44%), executing GL32C.nglMultiDrawElementsBaseVertex (25%)
       6.6%  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] (27%), executing GL20C.nglUniform1fv (23%)
       4.4%  me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.setupTerrain:218   <- LevelRenderer.setupRender:40729
               hot: me.jellysquid.mods.sodium.client.render.chunk.region.RenderRegionManager.update:51 (52%), executing Long2ReferenceOpenHashMap$MapIterator.nextEntry:662 (2.3%)
       no FPS gain while GPU-bound, but it adds to frame-time spikes
  4. [cpu] immediatelyfast costs 0.054 ms per frame on the render thread
       8.4% of render-thread CPU time, mostly in world, 28% in its own code (rest is vanilla/library code it called)
       37%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:116   <- GuiGraphics.flush:125
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (74%), executing RenderStateShard.clearRenderState:41 (11%)
       33%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endLastBatch:105   <- LevelRenderer.renderLevel:1228
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (69%), executing GL15C.nglBufferSubData (21%)
       12%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:125   <- LevelRenderer.renderLevel:1283
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (43%), executing RenderStateShard.setupRenderState:37 (18%)
       no FPS gain while GPU-bound, but it adds to frame-time spikes
  5. [cpu] geckolib costs 0.036 ms per frame on the render thread
       5.6% of render-thread CPU time, mostly in world, 74% in its own code (rest is vanilla/library code it called)
       85%  software.bernie.geckolib.renderer.GeoEntityRenderer.render:157   <- EntityRenderDispatcher.mixinextras$bridge$m_7392_$80
               hot: software.bernie.geckolib.renderer.GeoEntityRenderer.renderFinal:264 (7.6%), executing PoseStack.mulPose:50 (12%)
       14%  TextureManager.wrapAnimatableTexture:1524 [mixin handler from software.bernie.geckolib.mixin.client.TextureManagerMixin]   <- TextureManager.getTexture
               executing HashMap.hash (93%)
       no FPS gain while GPU-bound, but it adds to frame-time spikes
  6. [cpu] linggango_tweaks costs 0.031 ms per frame on the render thread
       4.9% of render-thread CPU time, mostly in world, 31% in its own code (rest is vanilla/library code it called)
       33%  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 (29%), executing BufferBuilder.endVertex:263 (24%)
       19%  com.misanthropy.linggango.linggango_tweaks.lumalight.LumalightClient.onRenderLevel:91   <- GameRenderer.renderLevel:1128
               hot: com.misanthropy.linggango.linggango_tweaks.lumalight.PostEffectRenderer.draw:210 (31%), executing GL45C.glBlitNamedFramebuffer (33%)
       11%  com.misanthropy.linggango.linggango_tweaks.client.DynamicCrosshairHandler.onRenderCrosshair:205   <- ForgeGui.gnetum$postEvent:3130 [mixin merged from me.decce.gnetum.mixins.ForgeGuiMixin]
               executing GL20C.glUseProgram (17%)
       no FPS gain while GPU-bound, but it adds to frame-time spikes
  7. [cpu] collections_of_optimizations costs 0.031 ms per frame on the render thread
       4.8% of render-thread CPU time, mostly in world, 75% in its own code (rest is vanilla/library code it called)
       17%  com.misanthropy.collections_of_optimizations.core.GeckoFastCube.tryRender:77   <- software.bernie.geckolib.renderer.GeoRenderer.renderCube:533
       11%  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 ObjectLinkedOpenHashSet.contains:543 (7.7%)
       9.0%  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.getChunkAt:4536 (13%)
       no FPS gain while GPU-bound, but it adds to frame-time spikes
  8. [cpu] gnetum costs 0.026 ms per frame on the render thread
       4.0% of render-thread CPU time, mostly in hud, 33% in its own code (rest is vanilla/library code it called)
       100%  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] (44%), executing ASMEventHandler.invoke:55 (23%)
       no FPS gain while GPU-bound, but it adds to frame-time spikes

FRAMES
  57,698 frames   p50 1.00 ms   p95 1.51 ms   p99 2.92 ms   worst 14 ms
  per frame:  tasks 0.003 ms  client tick 0.043 ms  render 0.58 ms  present 0.43 ms  other 0.039 ms
  inside those:  swap 0.43 ms  world 0.47 ms  hud 0.086 ms  screen 0.001 ms
  client tick: 1.98 ms per tick, 20.0 ticks per second
  GPU busy per frame (timer queries): p50 0.75 ms   p95 1.02 ms   p99 1.34 ms

RENDER THREAD CPU BY MOD (sampled; excludes GPU wait, fps limiter and blocked time)
  12,633 samples: CPU work 59%, GPU wait 41%, limiter 0.0%, blocked on other threads 0.0%
  mods caused 79% of render-thread CPU work, vanilla/forge/driver the rest
  20% of CPU work is inside OpenGL calls (driver work or a GPU sync), mostly glMultiDrawElementsBaseVertex; the mod that made the call is charged for it below
  ms/frame  share  own   mod                          mostly in
  0.087 ms  14%    51%   embeddium                    world
  0.077 ms  12%    81%   minecraft (vanilla)          world
  0.056 ms  8.8%   100%  forge (loader, events)       world
  0.054 ms  8.4%   28%   immediatelyfast              world
  0.036 ms  5.6%   74%   geckolib                     world
  0.031 ms  4.9%   31%   linggango_tweaks             world
  0.031 ms  4.8%   75%   collections_of_optimizations world
  0.026 ms  4.0%   33%   gnetum                       hud
  0.024 ms  3.7%   22%   oculus                       world
  0.021 ms  3.2%   78%   punchy                       world
  0.017 ms  2.7%   16%   asyncparticles               world
  0.012 ms  1.9%   100%  transmog                     world
  0.012 ms  1.8%   5.1%  let_there_be_atmosphere      world
  0.011 ms  1.8%   85%   xaeroworldmap                no phase
  0.009 ms  1.5%   56%   brute_force_culling_revived  world
  0.14 ms   117 more below 0.5% each

HOT PATHS (where each mod's render-thread time goes; SRG names translated; <- = called from)
  embeddium  0.087 ms/frame, 14%
    75%   me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.drawChunkLayer:284  <- LevelRenderer.renderChunkLayer:40702
          hot me.jellysquid.mods.sodium.client.render.chunk.DefaultChunkRenderer.fillCommandBuffer:165 44%
          executing GL32C.nglMultiDrawElementsBaseVertex 25%
    6.6%  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] 27%
          executing GL20C.nglUniform1fv 23%
    4.4%  me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.setupTerrain:218  <- LevelRenderer.setupRender:40729
          hot me.jellysquid.mods.sodium.client.render.chunk.region.RenderRegionManager.update:51 52%
          executing Long2ReferenceOpenHashMap$MapIterator.nextEntry:662 2.3%
  minecraft (vanilla)  0.077 ms/frame, 12%, hottest vanilla methods:
    19%   Entity.shouldRender:1562  <- me.decce.ixeris.RenderThreadStarter.run:39
    15%   EntityRenderDispatcher.getRenderer:530  <- me.decce.ixeris.RenderThreadStarter.run:39
    8.5%  LevelRenderer.renderLevel:1198  <- me.decce.ixeris.RenderThreadStarter.run:39
          executing Iterators$1.hasNext:140 12%
  immediatelyfast  0.054 ms/frame, 8.4%
    37%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:116  <- GuiGraphics.flush:125
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 74%
          executing RenderStateShard.clearRenderState:41 11%
    33%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endLastBatch:105  <- LevelRenderer.renderLevel:1228
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 69%
          executing GL15C.nglBufferSubData 21%
    12%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:125  <- LevelRenderer.renderLevel:1283
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 43%
          executing RenderStateShard.setupRenderState:37 18%
  geckolib  0.036 ms/frame, 5.6%
    85%   software.bernie.geckolib.renderer.GeoEntityRenderer.render:157  <- EntityRenderDispatcher.mixinextras$bridge$m_7392_$80
          hot software.bernie.geckolib.renderer.GeoEntityRenderer.renderFinal:264 7.6%
          executing PoseStack.mulPose:50 12%
    14%   TextureManager.wrapAnimatableTexture:1524 [mixin handler from software.bernie.geckolib.mixin.client.TextureManagerMixin]  <- TextureManager.getTexture
          executing HashMap.hash 93%
  linggango_tweaks  0.031 ms/frame, 4.9%
    33%   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 29%
          executing BufferBuilder.endVertex:263 24%
    19%   com.misanthropy.linggango.linggango_tweaks.lumalight.LumalightClient.onRenderLevel:91  <- GameRenderer.renderLevel:1128
          hot com.misanthropy.linggango.linggango_tweaks.lumalight.PostEffectRenderer.draw:210 31%
          executing GL45C.glBlitNamedFramebuffer 33%
    11%   com.misanthropy.linggango.linggango_tweaks.client.DynamicCrosshairHandler.onRenderCrosshair:205  <- ForgeGui.gnetum$postEvent:3130 [mixin merged from me.decce.gnetum.mixins.ForgeGuiMixin]
          executing GL20C.glUseProgram 17%
  collections_of_optimizations  0.031 ms/frame, 4.8%
    17%   com.misanthropy.collections_of_optimizations.core.GeckoFastCube.tryRender:77  <- software.bernie.geckolib.renderer.GeoRenderer.renderCube:533
    11%   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 ObjectLinkedOpenHashSet.contains:543 7.7%
    9.0%  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.getChunkAt:4536 13%
  gnetum  0.026 ms/frame, 4.0%
    100%  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] 44%
          executing ASMEventHandler.invoke:55 23%
  oculus  0.024 ms/frame, 3.7%
    27%   LevelRenderer.iris$renderTranslucentAfterDeferred:18140 [mixin redirect from net.irisshaders.iris.mixin.fantastic.MixinLevelRenderer]  <- LevelRenderer.renderLevel:1381
          hot ParticleEngine.lambda$iris$selectParticlesToRender$0:6181 [mixin merged from net.irisshaders.iris.mixin.fantastic.MixinParticleEngine] 8.1%
          executing ParticleEngine.render:3227 26%
    21%   GameRenderer.iris$disableVanillaHandRendering:8534 [mixin redirect from net.irisshaders.iris.mixin.MixinGameRenderer]  <- GameRenderer.renderItemInHand:852
          hot BufferBuilder.iris$beginWithoutExtending:1609 [mixin merged from net.irisshaders.iris.mixin.vertices.MixinBufferBuilder] 12%
          executing ASMEventHandler.invoke:55 44%
    13%   GlStateManager.iris$modify:2835 [mixin redirect from net.irisshaders.iris.mixin.MixinGlStateManager_DepthColorOverride]  <- GlStateManager._drawElements:718
          executing GL11C.nglDrawElements 100%

MEMORY AND GC
  allocated 8.6 GB (139 MB/s, exact, all threads), max heap 10.0 GB
  9 GC pauses (0 old/full), 53 ms paused (<0.1%), worst 7.00 ms, one every 7.0 s
  live data after GC 7.0 GB (70% of max), changed by 10 MB over the recording
  by mod (JFR samples scaled to each thread's exact allocation; 99% of bytes covered):
    18 MB/s   13%    geckolib                  336 samples
        12%  software.bernie.geckolib.renderer.GeoEntityRenderer.renderRecursively:290 -> Matrix4f
        10%  software.bernie.geckolib.core.animation.AnimationController.getAnimationPointAtTick:885 -> AnimationPoint
        8.6%  software.bernie.geckolib.renderer.GeoRenderer.renderCubesOfBone:268 -> Matrix4f
    18 MB/s   13%    minecraft (vanilla)       2,361 samples
        4.4%  Vec3.add:96 -> Vec3
    14 MB/s   9.9%   immediatelyfast           251 samples
        26%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.lambda$addNewFallbackBuffer$1:188 -> [J
        15%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.lambda$addNewFallbackBuffer$1:188 -> Object;
        7.2%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 -> Vector3f
    11 MB/s   7.6%   embeddium                 897 samples
        12%  BufferBuilder.onFormatChanged:5580 [mixin handler from me.jellysquid.mods.sodium.mixin.core.render.immediate.consumer.BufferBuilderMixin] -> SodiumBufferBuilder
        10%  me.jellysquid.mods.sodium.client.render.chunk.lists.ChunkRenderList.sectionsWithGeometryIterator:65 -> ReversibleByteArrayIterator
        7.2%  me.jellysquid.mods.sodium.client.render.vertex.buffer.SodiumBufferBuilder.<init>:41 -> SodiumBufferBuilderPolygonView
    10 MB/s   7.0%   punchy                    178 samples
        3.9%  punchy.client.render.ToolKindResolver.isCopperLantern:146 -> Optional
    7 MB/s    4.8%   linggango_tweaks          322 samples
        19%  snownee.jade.overlay.DisplayHelper.drawText:429 -> CallbackInfoReturnable
        16%  snownee.jade.overlay.DisplayHelper.drawText:429 -> CallbackInfo
        11%  snownee.jade.overlay.DisplayHelper.drawText:429 -> 2067047613
    5 MB/s    3.6%   collections_of_optimizations 158 samples
        15%  com.misanthropy.collections_of_optimizations.core.FancyMenuGuiPoseStack.pushPose:26 -> Matrix4f
        13%  com.misanthropy.collections_of_optimizations.core.FancyMenuGuiPoseStack.pushPose:26 -> Matrix3f
        6.6%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.coo$singleLookupGetBuffer:1118 [mixin handler from com.misanthropy.collections_of_optimizations.mixin.immediatelyfast.MixinBatchableBufferSource] -> Collections$SingletonSet
    4 MB/s    3.2%   gnetum                    80 samples
        40%  me.decce.gnetum.PassManager.cachingDisabled -> 1879846817
        26%  me.decce.gnetum.PassManager.cachingDisabled -> 2133006786
        7.5%  ForgeGui.gnetum$pre:3079 [mixin merged from me.decce.gnetum.mixins.ForgeGuiMixin] -> RenderGuiOverlayEvent$Pre
    3 MB/s    2.0%   pehkui                    52 samples
        31%  virtuoel.pehkui.api.ScaleData.calculateScaleForTick:309 -> Float
        19%  virtuoel.pehkui.api.TypedScaleModifier.getType -> 1808664105
        15%  EntityRenderDispatcher.pehkui$render$before:9029 [mixin handler from virtuoel.pehkui.mixin.client.compat115plus.EntityRenderDispatcherMixin] -> Matrix4f
    2 MB/s    1.7%   oculus                    43 samples
        14%  LevelRenderer.iris$renderTranslucentAfterDeferred:18140 [mixin redirect from net.irisshaders.iris.mixin.fantastic.MixinLevelRenderer] -> Matrix4f
        9.3%  LevelRenderer.iris$renderOpaqueParticles:18128 [mixin handler from net.irisshaders.iris.mixin.fantastic.MixinLevelRenderer] -> Matrix4f
        9.3%  net.irisshaders.iris.layer.OuterWrappedRenderType.run -> Matrix4f

INTEGRATED SERVER (single player; this is world lag, not FPS)
  1,264 ticks, mspt mean 4.14 ms, p50 3.93 ms, p95 5.64 ms, worst 32 ms, 0 over 50 ms
    0.72 ms/tick  17%    minecraft (vanilla)       
    0.42 ms/tick  10%    forge (loader, events)    
    0.16 ms/tick  3.9%   terramity                 net.mcreator.terramity.entity.GreenFairyEntity.aiStep:213
    0.12 ms/tick  3.0%   ending_library            Level.guardEntityTick:14052 [mixin handler from com.mega.endinglib.mixin.time.time.LevelMixin]
    0.12 ms/tick  3.0%   pehkui                    Entity.pehkui$tick:38737 [mixin handler from virtuoel.pehkui.mixin.EntityMixin]
    0.11 ms/tick  2.7%   collections_of_optimizations top.theillusivec4.curios.common.CuriosHelper.coo$fastEquippedMiss:530 [mixin handler from com.misanthropy.collections_of_optimizations.mixin.curios.MixinCuriosHelperFastMiss]
    0.11 ms/tick  2.6%   simplyswords              ServerLevel.simplyswords$tickFieldManagers:23215 [mixin handler from net.sweenus.simplyswords.mixin.ServerWorldMixin]
    0.11 ms/tick  2.6%   ftbquests                 dev.ftb.mods.ftbquests.FTBQuestsEventHandler.playerTick:166

THREADS (exact CPU per thread group; 'runs' = what JFR saw executing on it)
  the game used 0.93 of 16 cores, whole machine 19% busy
  cores  n    allocated   group                            runs
  0.64   1    7.0 GB      Render thread                    collections_of_optimizations 10%, minecraft 9.3%, punchy 8.7%
  0.12   10   52 MB       Flywheel Task Executor ##        flywheel 100%
  0.07   1    1.1 GB      Server thread                    minecraft 35%, ending_library 5.1%
  0.02   1    321 KB      spark-monitoring-thread          no JFR samples (idle or native)

ENTITIES, BLOCK ENTITIES, SCREENS (exact timings; per second of recording)
  entity render:
    20 ms/s    721/s    28 us    crittersandcompanions:leaf_insect           worst 0.30 ms at 2497, 69, 765
    16 ms/s    1,095/s  15 us    terramity:green_fairy                       worst 1.07 ms at 2498, 82, 784
    8.69 ms/s  383/s    23 us    crittersandcompanions:ladybug               worst 0.46 ms at 2500, 70, 751
  entity tick:
    7.95 ms/s  20/s     398 us   minecraft:player                            worst 0.86 ms at 2527, 68, 778
    0.91 ms/s  20/s     45 us    alexsmobs:blue_jay                          worst 0.34 ms at 2549, 80, 761
    0.63 ms/s  40/s     16 us    ars_nouveau:starbuncle                      worst 0.13 ms at 2513, 72, 678
  server entity tick:
    7.03 ms/s  195/s    36 us    terramity:green_fairy                       worst 0.50 ms at 2491, 78, 794
    1.62 ms/s  126/s    13 us    minecraft:salmon                            worst 0.31 ms at 2539, 57, 828
    1.32 ms/s  56/s     24 us    minecraft:creeper                           worst 0.27 ms at 2493, -34, 836
  screen:
    1.13 ms/s  16/s     73 us    net.minecraft.client.gui.screens.ChatScreen worst 0.26 ms

JVM AND I/O
  class loads over 1 ms: 1 (1.96 ms), on the render/server thread 1 (1.96 ms)
  log output: 0.0 lines/s
  exceptions thrown: 1.4/s, top: 0.1/s  NoSuchFileException from revelationfix at com.mega.revelationfix.util.entity.EntityActuallyHurt$1.computeValue:70

MOD VERSIONS (mods named in the findings)
  embeddium 0.3.32-beta.113-dirty+mc1.20.1;  immediatelyfast 1.5.5+1.20.4;  geckolib 4.8.4;  
  linggango_tweaks 7.35;  collections_of_optimizations 5.33;  gnetum 2.5.1+1.20.1-forge;  
  crittersandcompanions 2.7.1;  

RECORDING
  stack sampler every 5 ms: 12,633 render-thread, 812 server-thread samples (server only while ticking)
  JFR on (cpu, allocation, locks, file io, class loading, safepoints, exceptions): 1,265 CPU samples, 15,729 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
