WhatsLaggin report (manual)  10.7 s recorded, ended 2026-10-05 18:24:09
Minecraft 1.20.1, Forge 47.4.20, 482 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.8.1.260810
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 ComplementaryReimagined_r5.5.1 + EuphoriaPatches_1.6.8
World minecraft:overworld, 133 entities loaded

VERDICT
  355 fps average (2.82 ms per frame), 1% low 229 fps, 0.1% low 121 fps.
  GPU-BOUND: 1.85 ms of each frame (66%) is the CPU waiting for the GPU. The CPU part is only 0.97 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: 66% of every frame is spent waiting on the GPU
       The CPU finishes its part of a frame in 0.97 ms and then waits 1.85 ms in glfwSwapBuffers for the GPU.
       GPU time for the frame's draw calls: p50 2.52 ms, p95 2.88 ms (timer queries).
       Cutting CPU work (mods below) will NOT raise FPS until GPU load drops.
       Biggest GPU levers: shader pack 'ComplementaryReimagined_r5.5.1 + EuphoriaPatches_1.6.8' (lower its shadow/volumetric settings), render distance (12), resolution (3440x1440), graphics mode (fancy)
  2. [cpu] oculus costs 0.17 ms per frame on the render thread
       18% of render-thread CPU time, mostly in world, 47% in its own code (rest is vanilla/library code it called)
       35%  LevelRenderer.iris$beginTranslucents:14834 [mixin handler from net.irisshaders.iris.mixin.MixinLevelRenderer]   <- LevelRenderer.renderLevel:1370
               hot: net.irisshaders.iris.pathways.HandRenderer.renderSolid:96 (8.9%), executing GL30C.glBindFramebuffer (6.7%)
       17%  LevelRenderer.iris$beginLevelRender:14671 [mixin handler from net.irisshaders.iris.mixin.MixinLevelRenderer]   <- LevelRenderer.renderLevel:1149
               hot: net.irisshaders.iris.uniforms.custom.cached.CachedUniform.evaluateTo:92 (23%), executing GL11C.glClear (9.1%)
       10%  LevelRenderer.iris$renderTerrainShadows:14696 [mixin handler from net.irisshaders.iris.mixin.MixinLevelRenderer]   <- LevelRenderer.renderLevel:1155
               hot: net.irisshaders.iris.shadows.ShadowRenderer.renderShadows:466 (23%), executing GL13C.glActiveTexture (15%)
       no FPS gain while GPU-bound, but it adds to frame-time spikes
  3. [cpu] entity_model_features costs 0.14 ms per frame on the render thread
       14% of render-thread CPU time, mostly in world, 97% in its own code (rest is vanilla/library code it called)
       92%  traben.entity_model_features.models.parts.EMFModelPartVanilla.render:116   <- ModelPart.render:109
               hot: traben.entity_model_features.models.animation.math.asm.ASMParser.lambda$compileOrNull$0:162 (64%), executing EMF_ASM_Parsed_283.eval (64%)
       4.7%  ItemInHandRenderer.wrapRenderHandsWithItems:4647 [mixin wrapMethod from traben.entity_model_features.mixin.mixins.rendering.Mixin_WrapFirstPersonHandRender]   <- ItemInHandRenderer.renderHandsWithItems
               hot: traben.entity_model_features.models.parts.EMFModelPartWithState.setVariantStateTo:127 (40%), executing HashMap$HashIterator.nextNode (40%)
       no FPS gain while GPU-bound, but it adds to frame-time spikes
  4. [cpu] gnetum costs 0.054 ms per frame on the render thread
       5.5% of render-thread CPU time, mostly in hud, 27% in its own code (rest is vanilla/library code it called)
       98%  ForgeGui.gnetum$render$mixinextras$bridge$65 [mixin wrapOperation from me.decce.gnetum.mixins.ForgeGuiMixin]   <- GameRenderer.render:945
               hot: ForgeGui.gnetum$postEvent:3631 [mixin merged from me.decce.gnetum.mixins.ForgeGuiMixin] (50%), executing ASMEventHandler.invoke:55 (33%)
       no FPS gain while GPU-bound, but it adds to frame-time spikes
  5. [cpu] embeddium costs 0.033 ms per frame on the render thread
       3.4% of render-thread CPU time, mostly in world, 44% in its own code (rest is vanilla/library code it called)
       44%  me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.drawChunkLayer:259   <- LevelRenderer.renderChunkLayer:38702
               hot: me.jellysquid.mods.sodium.client.render.chunk.terrain.TerrainRenderPass.startDrawing:62 (18%), executing RenderStateShard.clearRenderState:41 (18%)
       16%  LevelRenderer.renderCloudsFast:6112 [mixin handler from me.jellysquid.mods.sodium.mixin.features.render.world.clouds.WorldRendererMixin]   <- LevelRenderer.renderClouds:1900
               hot: me.jellysquid.mods.sodium.client.render.immediate.CloudRenderer.applyFogModifiers:253 (25%), executing GL11C.glColorMask (50%)
       12%  me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.setupTerrain:216   <- LevelRenderer.setupRender:38729
               hot: me.jellysquid.mods.sodium.client.render.chunk.RenderSectionManager.updateChunks:378 (100%)
       no FPS gain while GPU-bound, but it adds to frame-time spikes
  6. [cpu] collections_of_optimizations costs 0.027 ms per frame on the render thread
       2.7% of render-thread CPU time, mostly in world, 60% in its own code (rest is vanilla/library code it called)
       30%  net.bettercombat.logic.WeaponRegistry.coo$cachedByItem:535 [mixin handler from com.misanthropy.collections_of_optimizations.mixin.bettercombat.MixinWeaponRegistry]   <- net.bettercombat.logic.WeaponRegistry.getAttributes
               hot: net.bettercombat.logic.WeaponRegistry.coo$carriesOwnAttributes:525 [mixin merged from com.misanthropy.collections_of_optimizations.mixin.bettercombat.MixinWeaponRegistry] (100%), executing Object2ObjectOpenHashMap.get:316 (100%)
       10%  me.decce.gnetum.PassManager.coo$memoCacheSetting:526 [mixin wrapMethod from com.misanthropy.collections_of_optimizations.mixin.gnetum.MixinPassManager]   <- me.decce.gnetum.PassManager.cachingDisabled
               hot: com.misanthropy.collections_of_optimizations.core.GnetumCacheSettingMemo.get:36 (100%), executing Object2ByteOpenHashMap.getByte:365 (100%)
       10%  com.github.alexmodguy.alexscaves.client.event.ClientEvents.coo$cacheShakeScan:1246 [mixin wrapOperation from com.misanthropy.collections_of_optimizations.mixin.alexscaves.MixinAlexsCavesShakeScan]   <- com.github.alexmodguy.alexscaves.client.event.ClientEvents.computeCameraAngles:257
               hot: com.misanthropy.collections_of_optimizations.core.CameraShakeScanCache.get:75 (50%)
       no FPS gain while GPU-bound, but it adds to frame-time spikes
  7. [cpu] immediatelyfast costs 0.027 ms per frame on the render thread
       2.7% of render-thread CPU time, mostly in hud, 45% in its own code (rest is vanilla/library code it called)
       40%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:116   <- blusunrize.immersiveengineering.client.LevelStageRenders.finish:250
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:133 (25%), executing GL11C.glTexParameteri (13%)
       35%  Gui.endBatching:15209 [mixin handler from net.raphimc.immediatelyfast.injection.mixins.hud_batching.MixinInGameHud]   <- Gui.renderCrosshair:392
               hot: net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 (71%), executing GL20C.glUseProgram (43%)
       10%  VertexBuffer.optimizeVertexDataUploading:546 [mixin redirect from net.raphimc.immediatelyfast.injection.mixins.fast_buffer_upload.MixinVertexBuffer]   <- VertexBuffer.uploadVertexBuffer:74
               executing GL15C.nglBufferSubData (100%)
       no FPS gain while GPU-bound, but it adds to frame-time spikes

FRAMES
  3,785 frames   p50 2.85 ms   p95 3.21 ms   p99 3.70 ms   worst 16 ms
  per frame:  tasks 0.012 ms  client tick 0.12 ms  render 0.79 ms  present 1.85 ms  other 0.042 ms
  inside those:  swap 1.85 ms  world 0.65 ms  hud 0.11 ms  screen 0.010 ms
  client tick: 2.14 ms per tick, 20.0 ticks per second
  GPU busy per frame (timer queries): p50 2.52 ms   p95 2.88 ms   p99 2.92 ms

RENDER THREAD CPU BY MOD (sampled; excludes GPU wait, fps limiter and blocked time)
  2,132 samples: CPU work 35%, GPU wait 65%, limiter 0.0%, blocked on other threads 0.0%
  mods caused 83% of render-thread CPU work, vanilla/forge/driver the rest
  13% of CPU work is inside OpenGL calls (driver work or a GPU sync), mostly glBindFramebuffer; the mod that made the call is charged for it below
  ms/frame  share  own   mod                          mostly in
  0.17 ms   18%    47%   oculus                       world
  0.14 ms   14%    97%   entity_model_features        world
  0.10 ms   11%    89%   minecraft (vanilla)          world
  0.065 ms  6.6%   100%  forge (loader, events)       world
  0.054 ms  5.5%   27%   gnetum                       hud
  0.033 ms  3.4%   44%   embeddium                    world
  0.027 ms  2.7%   60%   collections_of_optimizations world
  0.027 ms  2.7%   45%   immediatelyfast              hud
  0.025 ms  2.6%   42%   punchy                       world
  0.023 ms  2.3%   5.9%  asyncparticles               world
  0.023 ms  2.3%   76%   pehkui                       world
  0.016 ms  1.6%   50%   linggango_tweaks             world
  0.013 ms  1.4%   0.0%  transmog                     world
  0.013 ms  1.4%   90%   ending_library               client tick
  0.013 ms  1.4%   10%   ars_nouveau                  client tick
  0.23 ms   79 more below 0.5% each

HOT PATHS (where each mod's render-thread time goes; SRG names translated; <- = called from)
  oculus  0.17 ms/frame, 18%
    35%   LevelRenderer.iris$beginTranslucents:14834 [mixin handler from net.irisshaders.iris.mixin.MixinLevelRenderer]  <- LevelRenderer.renderLevel:1370
          hot net.irisshaders.iris.pathways.HandRenderer.renderSolid:96 8.9%
          executing GL30C.glBindFramebuffer 6.7%
    17%   LevelRenderer.iris$beginLevelRender:14671 [mixin handler from net.irisshaders.iris.mixin.MixinLevelRenderer]  <- LevelRenderer.renderLevel:1149
          hot net.irisshaders.iris.uniforms.custom.cached.CachedUniform.evaluateTo:92 23%
          executing GL11C.glClear 9.1%
    10%   LevelRenderer.iris$renderTerrainShadows:14696 [mixin handler from net.irisshaders.iris.mixin.MixinLevelRenderer]  <- LevelRenderer.renderLevel:1155
          hot net.irisshaders.iris.shadows.ShadowRenderer.renderShadows:466 23%
          executing GL13C.glActiveTexture 15%
  entity_model_features  0.14 ms/frame, 14%
    92%   traben.entity_model_features.models.parts.EMFModelPartVanilla.render:116  <- ModelPart.render:109
          hot traben.entity_model_features.models.animation.math.asm.ASMParser.lambda$compileOrNull$0:162 64%
          executing EMF_ASM_Parsed_283.eval 64%
    4.7%  ItemInHandRenderer.wrapRenderHandsWithItems:4647 [mixin wrapMethod from traben.entity_model_features.mixin.mixins.rendering.Mixin_WrapFirstPersonHandRender]  <- ItemInHandRenderer.renderHandsWithItems
          hot traben.entity_model_features.models.parts.EMFModelPartWithState.setVariantStateTo:127 40%
          executing HashMap$HashIterator.nextNode 40%
  minecraft (vanilla)  0.10 ms/frame, 11%, hottest vanilla methods:
    11%   Entity.shouldRender:1562  <- me.decce.ixeris.RenderThreadStarter.run:39
    8.9%  LevelRenderer.renderLevel:1427  <- me.decce.ixeris.RenderThreadStarter.run:39
    8.9%  ClientChunkCache.getChunk:30  <- ClientLevel.asyncparticles_animateTick:21586 [mixin wrapMethod from forge.fun.qu_an.minecraft.asyncparticles.client.mixin.core.animate_tick.MixinClientLevel_AnimateTick]
  gnetum  0.054 ms/frame, 5.5%
    98%   ForgeGui.gnetum$render$mixinextras$bridge$65 [mixin wrapOperation from me.decce.gnetum.mixins.ForgeGuiMixin]  <- GameRenderer.render:945
          hot ForgeGui.gnetum$postEvent:3631 [mixin merged from me.decce.gnetum.mixins.ForgeGuiMixin] 50%
          executing ASMEventHandler.invoke:55 33%
  embeddium  0.033 ms/frame, 3.4%
    44%   me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.drawChunkLayer:259  <- LevelRenderer.renderChunkLayer:38702
          hot me.jellysquid.mods.sodium.client.render.chunk.terrain.TerrainRenderPass.startDrawing:62 18%
          executing RenderStateShard.clearRenderState:41 18%
    16%   LevelRenderer.renderCloudsFast:6112 [mixin handler from me.jellysquid.mods.sodium.mixin.features.render.world.clouds.WorldRendererMixin]  <- LevelRenderer.renderClouds:1900
          hot me.jellysquid.mods.sodium.client.render.immediate.CloudRenderer.applyFogModifiers:253 25%
          executing GL11C.glColorMask 50%
    12%   me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.setupTerrain:216  <- LevelRenderer.setupRender:38729
          hot me.jellysquid.mods.sodium.client.render.chunk.RenderSectionManager.updateChunks:378 100%
  collections_of_optimizations  0.027 ms/frame, 2.7%
    30%   net.bettercombat.logic.WeaponRegistry.coo$cachedByItem:535 [mixin handler from com.misanthropy.collections_of_optimizations.mixin.bettercombat.MixinWeaponRegistry]  <- net.bettercombat.logic.WeaponRegistry.getAttributes
          hot net.bettercombat.logic.WeaponRegistry.coo$carriesOwnAttributes:525 [mixin merged from com.misanthropy.collections_of_optimizations.mixin.bettercombat.MixinWeaponRegistry] 100%
          executing Object2ObjectOpenHashMap.get:316 100%
    10%   me.decce.gnetum.PassManager.coo$memoCacheSetting:526 [mixin wrapMethod from com.misanthropy.collections_of_optimizations.mixin.gnetum.MixinPassManager]  <- me.decce.gnetum.PassManager.cachingDisabled
          hot com.misanthropy.collections_of_optimizations.core.GnetumCacheSettingMemo.get:36 100%
          executing Object2ByteOpenHashMap.getByte:365 100%
    10%   com.github.alexmodguy.alexscaves.client.event.ClientEvents.coo$cacheShakeScan:1246 [mixin wrapOperation from com.misanthropy.collections_of_optimizations.mixin.alexscaves.MixinAlexsCavesShakeScan]  <- com.github.alexmodguy.alexscaves.client.event.ClientEvents.computeCameraAngles:257
          hot com.misanthropy.collections_of_optimizations.core.CameraShakeScanCache.get:75 50%
  immediatelyfast  0.027 ms/frame, 2.7%
    40%   net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:116  <- blusunrize.immersiveengineering.client.LevelStageRenders.finish:250
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:133 25%
          executing GL11C.glTexParameteri 13%
    35%   Gui.endBatching:15209 [mixin handler from net.raphimc.immediatelyfast.injection.mixins.hud_batching.MixinInGameHud]  <- Gui.renderCrosshair:392
          hot net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 71%
          executing GL20C.glUseProgram 43%
    10%   VertexBuffer.optimizeVertexDataUploading:546 [mixin redirect from net.raphimc.immediatelyfast.injection.mixins.fast_buffer_upload.MixinVertexBuffer]  <- VertexBuffer.uploadVertexBuffer:74
          executing GL15C.nglBufferSubData 100%
  punchy  0.025 ms/frame, 2.6%
    79%   ItemInHandRenderer.punchy$renderFirstPersonModel:1160 [mixin handler from punchy.mixin.client.ItemInHandRendererMixin]  <- ItemInHandRenderer.m_109314_$mixinextras$wrapped$87
          hot punchy.client.render.PunchyArmRenderer.resolveBaselineUseTransform:512 13%
          executing ClientChunkCache.getChunk:30 6.7%
    21%   punchy.platform.ForgeClientPlatform.onClientTick:109  <- Minecraft.tick:1875
          hot punchy.compat.BetterCombatCompat.applyVanillaItemDisplay:223 50%
          executing MixinProcessor.applyMixins:325 25%

MEMORY AND GC
  allocated 1.2 GB (112 MB/s, exact, all threads), max heap 10.0 GB
  1 GC pauses (0 old/full), 14 ms paused (0.1%), worst 14 ms, one every 10.7 s
  live data after GC 4.3 GB (43% of max)
  by mod (JFR samples scaled to each thread's exact allocation; 97% of bytes covered):
    19 MB/s   17%    minecraft (vanilla)       160 samples
        5.7%  EntityRenderDispatcher.shouldRender:127 -> CallbackInfoReturnable
    14 MB/s   13%    oculus                    38 samples
        21%  LevelRenderer.lambda$batchedentityrendering$sortEntityList$0:7623 [mixin merged from net.irisshaders.batchedentityrendering.mixin.MixinLevelRenderer_EntityListSorting] -> Object;
        7.9%  LevelRenderer.batchedentityrendering$sortEntityList:7626 [mixin localvar from net.irisshaders.batchedentityrendering.mixin.MixinLevelRenderer_EntityListSorting] -> Object;
        7.9%  net.irisshaders.iris.pipeline.IrisRenderingPipeline.setPhase:811 -> [I
    11 MB/s   9.8%   radium                    36 samples
        33%  CompoundTag.useFasterCollection:1129 [mixin modify from me.jellysquid.mods.lithium.mixin.alloc.nbt.NbtCompoundMixin] -> Object;
        23%  me.jellysquid.mods.lithium.common.util.collections.HashedReferenceList.<init>:27 -> Object;
        12%  me.jellysquid.mods.lithium.common.util.collections.HashedReferenceList.<init>:27 -> [I
    8 MB/s    7.6%   punchy                    23 samples
        13%  punchy.client.render.ToolTuning.animationMergeKey:1146 -> [I
        8.7%  punchy.client.render.PunchyArmRenderer.resolveVanillaItemParticleRoot:2663 -> Object;
    6 MB/s    5.3%   entity_model_features     16 samples
        44%  traben.entity_model_features.models.animation.math.EMFMath.setEntityVariable:92 -> Float
        31%  traben.entity_model_features.models.animation.math.EMFMath.getEntityVariable:99 -> Float
        13%  traben.entity_model_features.models.parts.EMFModelPart.compile:547 -> Vector4f
    3 MB/s    3.0%   immediatelyfast           9 samples
        22%  GuiGraphics.drawTexturedQuadIntoBuffer:12328 [mixin handler from net.raphimc.immediatelyfast.injection.mixins.hud_batching.consumer.MixinDrawContext] -> CallbackInfoReturnable
        11%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.endBatch:135 -> PoseStack$Pose
        11%  net.raphimc.immediatelyfast.feature.core.BatchableBufferSource.<init>:39 -> Object2ObjectLinkedOpenHashMap
    3 MB/s    2.7%   embeddium                 16 samples
        24%  me.jellysquid.mods.sodium.client.render.chunk.terrain.TerrainRenderPass.endDrawing:67 -> CallbackInfo
        14%  me.jellysquid.mods.sodium.client.render.chunk.lists.VisibleChunkCollector.<init>:30 -> Object;
        12%  me.jellysquid.mods.sodium.client.render.chunk.ChunkRenderMatrices.from:11 -> Matrix4f
    3 MB/s    2.5%   alexscaves                8 samples
        65%  com.github.alexmodguy.alexscaves.server.level.biome.BiomeSampler.sampleBiomesVec3Quart:46 -> Vec3
        22%  Entity.ac_collide:51748 [mixin handler from com.github.alexmodguy.alexscaves.mixin.EntityMixin] -> ImmutableList$Builder
        13%  com.github.alexmodguy.alexscaves.client.event.ClientEvents.fogRender:733 -> 400863118
    2 MB/s    1.7%   asyncparticles            197 samples
        30%  ParticleEngine.lambda$tickTail$3:11686 [mixin merged from forge.fun.qu_an.minecraft.asyncparticles.client.mixin.core.particle.gpu_acceleration.MixinParticleEngine] -> LocalDoubleRefImpl
        22%  ParticleEngine.lambda$tickTail$3:11686 [mixin merged from forge.fun.qu_an.minecraft.asyncparticles.client.mixin.core.particle.gpu_acceleration.MixinParticleEngine] -> AABB
        17%  forge.fun.qu_an.minecraft.asyncparticles.client.util.IterationSafeArrayList.listIterator:163 -> IterationSafeArrayList$ListItr
    2 MB/s    1.7%   relics                    6 samples
        50%  Entity.fluidCollision:42608 [mixin localvar from it.hurts.sskirillss.relics.mixin.EntityMixin] -> [I
        33%  Entity.fluidCollision:42621 [mixin localvar from it.hurts.sskirillss.relics.mixin.EntityMixin] -> 400863118
        17%  Entity.fluidCollision:42608 [mixin localvar from it.hurts.sskirillss.relics.mixin.EntityMixin] -> [[I

INTEGRATED SERVER (single player; this is world lag, not FPS)
  214 ticks, mspt mean 7.06 ms, p50 6.95 ms, p95 9.83 ms, worst 24 ms, 0 over 50 ms
    2.61 ms/tick  37%    minecraft (vanilla)       
    0.66 ms/tick  9.4%   forge (loader, events)    
    0.45 ms/tick  6.4%   radium                    EntitySectionStorage.forEachInBox:562 [mixin handler from me.jellysquid.mods.lithium.mixin.entity.fast_retrieval.SectionedEntityCacheMixin]
    0.33 ms/tick  4.7%   linggango_tweaks          com.misanthropy.linggango.linggango_tweaks.tweak.gate.MobStages.onPotentialSpawns:130
    0.31 ms/tick  4.4%   pehkui                    Entity.pehkui$tick:34737 [mixin handler from virtuoel.pehkui.mixin.EntityMixin]
    0.19 ms/tick  2.7%   ending_library            ServerEntity.tickCheckCapData:2581 [mixin handler from com.mega.endinglib.mixin.capability.ServerEntityMixin]
    0.17 ms/tick  2.3%   collections_of_optimizations ChunkMap.coo$reuseUnchangedSectionPos$mixinextras$bridge$228 [mixin wrapOperation from com.misanthropy.collections_of_optimizations.mixin.vanilla.MixinChunkMapEntityTracker]

THREADS (exact CPU per thread group; 'runs' = what JFR saw executing on it)
  the game used 0.67 of 16 cores, whole machine 17% busy
  cores  n    allocated   group                            runs
  0.36   1    730 MB      Render thread                    entity_model_features 17%, minecraft 9.7%, collections_of_optimizations 6.0%
  0.14   1    388 MB      Server thread                    minecraft 24%, radium 8.5%, collections_of_optimizations 7.3%
  0.09   1    40 MB       JFR Event Stream #               no JFR samples (idle or native)

ENTITIES, BLOCK ENTITIES, SCREENS (exact timings; per second of recording)
  entity render:
    14 ms/s    60/s     228 us   minecraft:player                            worst 0.57 ms at 665, 193, -1746
  entity tick:
    8.05 ms/s  20/s     403 us   minecraft:player                            worst 0.82 ms at 665, 193, -1746
    3.94 ms/s  260/s    15 us    ars_nouveau:starbuncle                      worst 0.16 ms at 606, 68, -1722
    1.70 ms/s  80/s     21 us    ars_nouveau:whirlisprig                     worst 0.14 ms at 621, 69, -1684
  server entity tick:
    8.17 ms/s  248/s    33 us    eeeabsmobs:relic_observer                   worst 0.22 ms at 922, 15, -1058
    5.47 ms/s  333/s    16 us    ars_nouveau:starbuncle                      worst 0.20 ms at 690, 135, -1269
    5.47 ms/s  218/s    25 us    terramity:cave_gnome                        worst 0.19 ms at 692, 69, -1734
    4.83 ms/s  192/s    25 us    eeeabsmobs:relic_ripper                     worst 0.12 ms at 912, -16, -1072
    4.59 ms/s  141/s    33 us    minecraft:creeper                           worst 0.19 ms at 681, 69, -1739
    4.11 ms/s  119/s    35 us    ars_nouveau:whirlisprig                     worst 0.17 ms at 923, 141, -1270
    3.99 ms/s  235/s    17 us    alexsmobs:bison                             worst 0.15 ms at 701, 69, -1742
    3.40 ms/s  95/s     36 us    minecraft:spider                            worst 0.17 ms at 677, 68, -1753
  server block entity tick:
    2.79 ms/s  11,988/s 0 us     minecraft:sculk_sensor                      worst 0.083 ms at 895, -16, -1146
    1.14 ms/s  3,951/s  0 us     minecraft:sculk_catalyst                    worst 0.13 ms at 933, -52, -1045
  screen:
    3.66 ms/s  40/s     92 us    net.minecraft.client.gui.screens.ChatScreen worst 0.24 ms

JVM AND I/O
  class loads over 1 ms: 1 (1.03 ms), on the render/server thread 1 (1.03 ms)
  log output: 0.0 lines/s
  exceptions thrown: 84.3/s, top: 18.8/s  UnionFileSystem$NoSuchFileException from punchy at punchy.compat.BetterCombatCompat.applyVanillaItemDisplay:223

MOD VERSIONS (mods named in the findings)
  oculus 1.8.3;  entity_model_features 3.3.10;  gnetum 2.5.1+1.20.1-forge;  
  embeddium 0.3.32-beta.102-dirty+mc1.20.1;  collections_of_optimizations 4.6;  immediatelyfast 1.5.5+1.20.4;  

RECORDING
  stack sampler every 5 ms: 2,132 render-thread, 298 server-thread samples (server only while ticking)
  JFR on (cpu, allocation, locks, file io, class loading, safepoints, exceptions): 240 CPU samples, 954 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
