WhatsLaggin report (manual)  30.9 s recorded, ended 2026-10-22 07:50:19
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 3440x1392 fullscreen @180 Hz, vsync off, fps limit unlimited, render distance 16, simulation 7, graphics fancy, shaders off
World minecraft:overworld, 166 entities loaded

VERDICT
  878 fps average (1.14 ms per frame), 1% low 157 fps, 0.1% low 88 fps.
  BALANCED: 0.78 ms CPU plus 0.36 ms waiting on the GPU per frame. Cuts on either side help.
  2 stutters over 20 ms (3.9 per minute), worst 41 ms. Biggest cause: whole-process stall.

WHAT TO FIX (ranked by time lost per second of play)
  1. [gpu] Partly GPU-bound: 0.36 ms of each 1.14 ms frame waits on the GPU
       Both CPU and GPU cuts help here. CPU work: 0.78 ms per frame.
       Biggest GPU levers: render distance (16), resolution (3440x1392), graphics mode (fancy)
  2. [cpu] embeddium costs 0.092 ms per frame on the render thread
       12% of render-thread CPU time, mostly in world, 50% in its own code (rest is vanilla/library code it called)
       71%  me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.drawChunkLayer:284   <- LevelRenderer.renderChunkLayer:40702
               hot: me.jellysquid.mods.sodium.client.render.chunk.DefaultChunkRenderer.fillCommandBuffer:165 (40%), executing GL32C.nglMultiDrawElementsBaseVertex (27%)
       5.7%  me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.setupTerrain:218   <- LevelRenderer.setupRender:40729
               hot: me.jellysquid.mods.sodium.client.render.chunk.region.RenderRegionManager.update:51 (39%), executing PriorityQueue.isEmpty:63 (7.1%)
       5.3%  ShaderInstance.uploadUniforms:4132 [mixin redirect from me.jellysquid.mods.sodium.mixin.features.shader.uniform.ShaderProgramMixin]   <- ShaderInstance.apply:369
               hot: Uniform.sodium$matchesLastUpload:2184 [mixin merged from me.jellysquid.mods.sodium.mixin.features.shader.uniform.UniformMixin] (12%), executing GL20C.nglUniform1fv (27%)
       removing this cost entirely: about 878 -> 955 fps
  3. [cpu] immediatelyfast costs 0.055 ms per frame on the render thread
       7.4% of render-thread CPU time, mostly in world, 27% in its own code (rest is vanilla/library code it called)
       42%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:116   <- ItemInHandRenderer.m_109314_$mixinextras$wrapped$96:327
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (78%), executing RenderStateShard.setupRenderState:37 (10%)
       29%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endLastBatch:105   <- LevelRenderer.renderLevel:1228
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (69%), executing GL15C.nglBufferSubData (16%)
       10%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:125   <- LevelRenderer.renderLevel:1283
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (43%), executing RenderStateShard.clearRenderState:41 (13%)
       removing this cost entirely: about 878 -> 923 fps
  4. [tick] Each client tick takes 4.05 ms
       20 ticks a second run inline on the render thread, so 20 frames a second each take 4.05 ms longer than the rest (uneven frame pacing).
       linggango_tweaks 0.29 ms per tick
       collections_of_optimizations 0.25 ms per tick
       punchy 0.20 ms per tick
       create 0.17 ms per tick
       xaerominimap 0.10 ms per tick
  5. [cpu] linggango_tweaks costs 0.037 ms per frame on the render thread
       5.0% of render-thread CPU time, mostly in world, 38% in its own code (rest is vanilla/library code it called)
       21%  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 (16%), executing BufferBuilder.endVertex:263 (30%)
       19%  com.misanthropy.linggango.linggango_tweaks.lumalight.LumalightClient.onRenderLevel:91   <- GameRenderer.renderLevel:1128
               hot: com.misanthropy.linggango.linggango_tweaks.lumalight.PostEffectRenderer.draw:210 (38%), executing GL45C.glBlitNamedFramebuffer (36%)
       9.9%  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 (40%), executing GL20C.glUseProgram (15%)
       removing this cost entirely: about 878 -> 908 fps
  6. [world] cnb:yeti (entity render) costs 28 ms every second
       32,555 calls, 26 us each, worst 0.55 ms at 2486, 69, 762
  7. [cpu] collections_of_optimizations costs 0.029 ms per frame on the render thread
       3.9% of render-thread CPU time, mostly in world, 75% in its own code (rest is vanilla/library code it called)
       18%  com.misanthropy.collections_of_optimizations.core.GeckoFastCube.tryRender:77   <- software.bernie.geckolib.renderer.GeoRenderer.renderCube:533
       11%  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 (50%), executing LevelChunkSection.getFluidState (22%)
       10%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.coo$singleLookupGetOrCreate:1083 [mixin handler from com.misanthropy.collections_of_optimizations.mixin.immediatelyfast.MixinBatchableBufferSource]   <- net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.getOrCreateBufferBuilder
               executing Object2ObjectLinkedOpenHashMap.get:637 (44%)
       removing this cost entirely: about 878 -> 901 fps
  8. [cpu] gnetum costs 0.028 ms per frame on the render thread
       3.7% of render-thread CPU time, mostly in hud, 28% 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] (41%), executing ASMEventHandler.invoke:55 (19%)
       removing this cost entirely: about 878 -> 900 fps
  9. [cpu] punchy costs 0.027 ms per frame on the render thread
       3.6% of render-thread CPU time, mostly in world, 75% in its own code (rest is vanilla/library code it called)
       80%  ItemInHandRenderer.punchy$renderFirstPersonModel:1160 [mixin handler from punchy.mixin.client.ItemInHandRendererMixin]   <- ItemInHandRenderer.m_109314_$mixinextras$wrapped$96
               hot: punchy.client.state.MovementStateMachine.endRenderSample:419 (5.1%), executing LivingEntity.getItemInHand:1874 (4.3%)
       17%  punchy.platform.ForgeClientPlatform.onClientTick:109   <- Minecraft.tick:1875
               hot: punchy.client.bedrockitems.BedrockItemAnimationManager.getStackKey:642 (8.0%), executing String.indexOfNonWhitespace (12%)
       removing this cost entirely: about 878 -> 900 fps

FRAMES
  27,045 frames   p50 0.99 ms   p95 1.61 ms   p99 5.31 ms   worst 41 ms
  per frame:  tasks 0.007 ms  client tick 0.093 ms  render 0.63 ms  present 0.36 ms  other 0.043 ms
  inside those:  swap 0.36 ms  world 0.50 ms  hud 0.11 ms  screen 0.004 ms
  client tick: 4.05 ms per tick, 20.2 ticks per second
  GPU busy per frame (timer queries): p50 0.71 ms   p95 1.15 ms   p99 1.41 ms

RENDER THREAD CPU BY MOD (sampled; excludes GPU wait, fps limiter and blocked time)
  6,169 samples: CPU work 65%, GPU wait 35%, limiter 0.0%, blocked on other threads 0.0%
  mods caused 78% of render-thread CPU work, vanilla/forge/driver the rest
  17% 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.10 ms   14%    87%   minecraft (vanilla)          world
  0.092 ms  12%    50%   embeddium                    world
  0.066 ms  8.9%   100%  forge (loader, events)       world
  0.055 ms  7.4%   27%   immediatelyfast              world
  0.037 ms  5.0%   38%   linggango_tweaks             world
  0.029 ms  3.9%   75%   collections_of_optimizations world
  0.028 ms  3.7%   28%   gnetum                       hud
  0.027 ms  3.6%   75%   punchy                       world
  0.027 ms  3.6%   25%   asyncparticles               world
  0.022 ms  3.0%   13%   oculus                       world
  0.022 ms  2.9%   67%   geckolib                     world
  0.015 ms  2.0%   83%   xaeroworldmap                no phase
  0.013 ms  1.7%   19%   let_there_be_atmosphere      world
  0.012 ms  1.6%   51%   brute_force_culling_revived  world
  0.009 ms  1.2%   80%   create                       client tick
  0.19 ms   137 more below 0.5% each

HOT PATHS (where each mod's render-thread time goes; SRG names translated; <- = called from)
  minecraft (vanilla)  0.10 ms/frame, 14%, hottest vanilla methods:
    19%   Entity.shouldRender:1562  <- me.decce.ixeris.RenderThreadStarter.run:39
    17%   EntityRenderDispatcher.getRenderer:530  <- me.decce.ixeris.RenderThreadStarter.run:39
    9.7%  LevelRenderer.renderLevel:1198  <- me.decce.ixeris.RenderThreadStarter.run:39
          executing Iterators$1.hasNext:140 15%
  embeddium  0.092 ms/frame, 12%
    71%   me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.drawChunkLayer:284  <- LevelRenderer.renderChunkLayer:40702
          hot me.jellysquid.mods.sodium.client.render.chunk.DefaultChunkRenderer.fillCommandBuffer:165 40%
          executing GL32C.nglMultiDrawElementsBaseVertex 27%
    5.7%  me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.setupTerrain:218  <- LevelRenderer.setupRender:40729
          hot me.jellysquid.mods.sodium.client.render.chunk.region.RenderRegionManager.update:51 39%
          executing PriorityQueue.isEmpty:63 7.1%
    5.3%  ShaderInstance.uploadUniforms:4132 [mixin redirect from me.jellysquid.mods.sodium.mixin.features.shader.uniform.ShaderProgramMixin]  <- ShaderInstance.apply:369
          hot Uniform.sodium$matchesLastUpload:2184 [mixin merged from me.jellysquid.mods.sodium.mixin.features.shader.uniform.UniformMixin] 12%
          executing GL20C.nglUniform1fv 27%
  immediatelyfast  0.055 ms/frame, 7.4%
    42%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:116  <- ItemInHandRenderer.m_109314_$mixinextras$wrapped$96:327
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 78%
          executing RenderStateShard.setupRenderState:37 10%
    29%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endLastBatch:105  <- LevelRenderer.renderLevel:1228
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 69%
          executing GL15C.nglBufferSubData 16%
    10%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:125  <- LevelRenderer.renderLevel:1283
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 43%
          executing RenderStateShard.clearRenderState:41 13%
  linggango_tweaks  0.037 ms/frame, 5.0%
    21%   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 16%
          executing BufferBuilder.endVertex:263 30%
    19%   com.misanthropy.linggango.linggango_tweaks.lumalight.LumalightClient.onRenderLevel:91  <- GameRenderer.renderLevel:1128
          hot com.misanthropy.linggango.linggango_tweaks.lumalight.PostEffectRenderer.draw:210 38%
          executing GL45C.glBlitNamedFramebuffer 36%
    9.9%  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 40%
          executing GL20C.glUseProgram 15%
  collections_of_optimizations  0.029 ms/frame, 3.9%
    18%   com.misanthropy.collections_of_optimizations.core.GeckoFastCube.tryRender:77  <- software.bernie.geckolib.renderer.GeoRenderer.renderCube:533
    11%   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 50%
          executing LevelChunkSection.getFluidState 22%
    10%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.coo$singleLookupGetOrCreate:1083 [mixin handler from com.misanthropy.collections_of_optimizations.mixin.immediatelyfast.MixinBatchableBufferSource]  <- net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.getOrCreateBufferBuilder
          executing Object2ObjectLinkedOpenHashMap.get:637 44%
  gnetum  0.028 ms/frame, 3.7%
    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] 41%
          executing ASMEventHandler.invoke:55 19%
  punchy  0.027 ms/frame, 3.6%
    80%   ItemInHandRenderer.punchy$renderFirstPersonModel:1160 [mixin handler from punchy.mixin.client.ItemInHandRendererMixin]  <- ItemInHandRenderer.m_109314_$mixinextras$wrapped$96
          hot punchy.client.state.MovementStateMachine.endRenderSample:419 5.1%
          executing LivingEntity.getItemInHand:1874 4.3%
    17%   punchy.platform.ForgeClientPlatform.onClientTick:109  <- Minecraft.tick:1875
          hot punchy.client.bedrockitems.BedrockItemAnimationManager.getStackKey:642 8.0%
          executing String.indexOfNonWhitespace 12%
  asyncparticles  0.027 ms/frame, 3.6%
    30%   LevelRenderer.onRenderLevelHead:4601 [mixin handler from forge.fun.qu_an.minecraft.asyncparticles.client.mixin.core.particle.gpu_acceleration.MixinLevelRenderer]  <- LevelRenderer.renderLevel
          hot forge.fun.qu_an.minecraft.asyncparticles.client.core.backend.GlCommands$GL.glMultiDrawArrays:125 30%
          executing JNI.callPPV 30%
    26%   forge.fun.qu_an.minecraft.asyncparticles.client.core.particle.gpu_acceleration.opengl.GlTfParticleRenderer.render:410  <- ParticleEngine.render:3222
          hot forge.fun.qu_an.minecraft.asyncparticles.client.core.particle.gpu_acceleration.opengl.ParticleVertexBuffer.bind:42 7.9%
          executing GL32C.nglDrawRangeElementsBaseVertex 24%
    18%   forge.fun.qu_an.minecraft.asyncparticles.client.util.CombinedIterable.ofIdentitySet:59  <- ParticleEngine.render:3183
          executing AbstractCollection.addAll 46%

STUTTERS (frames over 20 ms, grouped by what was happening during them)
  frames  worst     extra/min   cause
  1       41 ms     77 ms       whole-process stall

  worst frames:
  07:49:51.122  41 ms    present 40 ms         whole-process stall
                             every thread was stopped (OS scheduling, paging, or a JVM pause JFR did not see)

MEMORY AND GC
  allocated 4.6 GB (152 MB/s, exact, all threads), max heap 10.0 GB
  3 GC pauses (0 old/full), 56 ms paused (0.2%), worst 39 ms, one every 10.3 s
  live data after GC 5.0 GB (50% of max), changed by -12889736 B over the recording
  by mod (JFR samples scaled to each thread's exact allocation; 100% of bytes covered):
    23 MB/s   14%    minecraft (vanilla)       593 samples
        2.9%  Vec3.add:96 -> Vec3
    19 MB/s   12%    immediatelyfast           170 samples
        20%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 -> Vector3f
        18%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.lambda$addNewFallbackBuffer$1:188 -> [J
        9.4%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.lambda$addNewFallbackBuffer$1:188 -> Object;
    13 MB/s   7.9%   geckolib                  112 samples
        17%  software.bernie.geckolib.renderer.GeoEntityRenderer.renderRecursively:290 -> Matrix4f
        12%  software.bernie.geckolib.renderer.GeoRenderer.renderCubesOfBone:268 -> Matrix4f
        8.9%  software.bernie.geckolib.renderer.GeoRenderer.renderChildBones:283 -> ObjectArrayList$1
    12 MB/s   7.6%   jdk                       368 samples
        100%  IdentityHashMap$KeySet.iterator -> IdentityHashMap$KeyIterator
    11 MB/s   6.6%   embeddium                 378 samples
        19%  BufferBuilder.onFormatChanged:5580 [mixin handler from me.jellysquid.mods.sodium.mixin.core.render.immediate.consumer.BufferBuilderMixin] -> SodiumBufferBuilder
        15%  me.jellysquid.mods.sodium.client.render.chunk.lists.ChunkRenderList.sectionsWithGeometryIterator:65 -> ReversibleByteArrayIterator
        8.5%  me.jellysquid.mods.sodium.client.util.sorting.MergeSort.mergeSort:60 -> [I
    9 MB/s    5.8%   linggango_tweaks          182 samples
        16%  snownee.jade.overlay.DisplayHelper.drawText:429 -> CallbackInfo
        7.3%  snownee.jade.overlay.DisplayHelper.drawText:429 -> 2113140570
    8 MB/s    4.7%   punchy                    67 samples
        4.5%  LevelRenderer.punchy$renderReleasedItemParticles:12607 [mixin handler from punchy.mixin.client.LevelRendererMixin] -> Object;
    5 MB/s    3.3%   collections_of_optimizations 144 samples
        13%  com.misanthropy.collections_of_optimizations.core.FancyMenuGuiPoseStack.pushPose:26 -> Matrix4f
        8.6%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.coo$singleLookupGetBuffer:1118 [mixin handler from com.misanthropy.collections_of_optimizations.mixin.immediatelyfast.MixinBatchableBufferSource] -> Collections$SingletonSet
        8.6%  com.misanthropy.collections_of_optimizations.core.FancyMenuGuiPoseStack.pushPose:26 -> Matrix3f
    4 MB/s    2.5%   asyncparticles            347 samples
        39%  ClientLevel.asyncparticles_shouldSyncAnimateTick:24108 [mixin wrapOperation from forge.fun.qu_an.minecraft.asyncparticles.client.mixin.core.animate_tick.MixinClientLevel_AnimateTick] -> Object;
        8.3%  forge.fun.qu_an.minecraft.asyncparticles.client.util.IterationSafeEvictingQueue.iterator:239 -> IterationSafeEvictingQueue$anIterator
        8.2%  forge.fun.qu_an.minecraft.asyncparticles.client.util.IterationSafeArrayList.listIterator:163 -> IterationSafeArrayList$ListItr
    4 MB/s    2.4%   gnetum                    34 samples
        38%  me.decce.gnetum.PassManager.cachingDisabled -> 570493951
        29%  me.decce.gnetum.PassManager.cachingDisabled -> 491440886
        8.8%  ForgeGui.gnetum$renderLayers:3062 [mixin merged from me.decce.gnetum.mixins.ForgeGuiMixin] -> 1314881526

INTEGRATED SERVER (single player; this is world lag, not FPS)
  623 ticks, mspt mean 7.47 ms, p50 7.01 ms, p95 11 ms, worst 46 ms, 0 over 50 ms
    1.30 ms/tick  17%    minecraft (vanilla)       
    1.18 ms/tick  16%    collections_of_optimizations ServerLevel.coo$growthTick:10142 [mixin modifyExpressionValue from com.misanthropy.collections_of_optimizations.mixin.immersiveweathering.MixinServerLevelGrowthTick]
    0.52 ms/tick  7.0%   forge (loader, events)    
    0.25 ms/tick  3.3%   ending_library            Level.guardEntityTick:14052 [mixin handler from com.mega.endinglib.mixin.time.time.LevelMixin]
    0.23 ms/tick  3.1%   radium                    ServerLevel.redirectBlockStateTick:4159 [mixin redirect from me.jellysquid.mods.lithium.mixin.alloc.chunk_random.ServerWorldMixin]
    0.17 ms/tick  2.3%   servercore                ServerChunkCache.servercore$updateCachedChunks:1641 [mixin modifyExpressionValue from me.wesley1808.servercore.mixin.optimizations.ticking.chunk.cache.ServerChunkCacheMixin]
    0.16 ms/tick  2.2%   linggango_tweaks          com.misanthropy.linggango.linggango_tweaks.echelon.EchelonEvents.onPlayerTick:299
    0.16 ms/tick  2.2%   pehkui                    Entity.pehkui$tick:38737 [mixin handler from virtuoel.pehkui.mixin.EntityMixin]

THREADS (exact CPU per thread group; 'runs' = what JFR saw executing on it)
  the game used 1.08 of 16 cores, whole machine 32% busy
  cores  n    allocated   group                            runs
  0.67   1    3.5 GB      Render thread                    minecraft 13%, collections_of_optimizations 12%, irons_spellbooks 6.5%
  0.13   1    680 MB      Server thread                    minecraft 27%, collections_of_optimizations 7.0%, ending_library 5.2%
  0.09   10   24 MB       Flywheel Task Executor ##        flywheel 100%
  0.06   1    177 MB      Linggango Streams                lithoform 54%, linggango_tweaks 39%
  0.03   1    158 KB      spark-monitoring-thread          no JFR samples (idle or native)
  0.02   1    510 KB      whatslaggin-threads              no JFR samples (idle or native)

ENTITIES, BLOCK ENTITIES, SCREENS (exact timings; per second of recording)
  entity render:
    28 ms/s    1,052/s  26 us    cnb:yeti                                    worst 0.55 ms at 2486, 69, 762
    12 ms/s    266/s    47 us    alexsmobs:catfish                           worst 2.03 ms at 2494, 60, 816
    0.63 ms/s  8/s      76 us    alexsmobs:terrapin                          worst 2.69 ms at 2500, 61, 821
  entity tick:
    19 ms/s    20/s     932 us   minecraft:player                            worst 2.29 ms at 2527, 68, 778
    1.56 ms/s  29/s     54 us    primitive_mobs:grovesprite                  worst 0.88 ms at 2542, 70, 741
    1.26 ms/s  28/s     44 us    minecraft:squid                             worst 0.52 ms at 2533, 57, 826
  server entity tick:
    11 ms/s    237/s    47 us    terramity:green_fairy                       worst 0.68 ms at 2560, 64, 805
    9.55 ms/s  149/s    64 us    minecraft:zombie                            worst 0.98 ms at 2479, -45, 801
    7.96 ms/s  1,237/s  6 us     minecraft:item                              worst 2.53 ms at 2533, 2, 885
    3.38 ms/s  233/s    14 us    minecraft:creeper                           worst 0.88 ms at 2491, 4, 786
    2.95 ms/s  4/s      671 us   minecraft:chicken                           worst 1.96 ms at 2458, 12, 767
    2.80 ms/s  60/s     46 us    alexsmobs:blue_jay                          worst 0.71 ms at 2571, 68, 768
    2.68 ms/s  29/s     94 us    primitive_mobs:grovesprite                  worst 1.89 ms at 2542, 70, 741
    2.41 ms/s  271/s    9 us     minecraft:salmon                            worst 0.35 ms at 2551, 55, 829
  screen:
    3.33 ms/s  33/s     102 us   net.minecraft.client.gui.screens.ChatScreen worst 2.18 ms

JVM AND I/O
  class loads over 1 ms: 8 (22 ms), on the render/server thread 7 (20 ms)
  non-GC safepoints: 21 ms total (last: ThreadDump)
  log output: 0.2 lines/s
  exceptions thrown: 3.2/s, top: 0.3/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;  linggango_tweaks 7.34;  
  collections_of_optimizations 5.32;  gnetum 2.5.1+1.20.1-forge;  punchy 2.8c;  create 6.0.8;  
  xaerominimap 26.5.0;  cnb 1.7.10;  

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