Performance Analyzer
Why is my modpack or server lagging? Open a compact in-game diagnostic HUD and follow the evidence.
Performance Analyzer is a lightweight diagnostic tool for Minecraft 1.20.1 with Forge. It helps ordinary players, modpack creators, and server owners understand performance pressure. It does not optimize automatically and complements dedicated profilers such as Spark.
What it shows
- Observed TPS, rolling MSPT, last/peak tick duration, and slow ticks (≥100 ms) in the last 100 ticks.
- Per-dimension tick work, including average and peak time.
- Entity totals, categories and types: animals, monsters, dropped items, projectiles, custom entities, and falling gravity blocks.
- Loaded block entity counts and sampled tick costs, including non-ticking storage and ticking machines.
- Nearby chunk pressure and administrator server overview across loaded dimensions.
- Suspected hotspot dimension, chunk, X/Y/Z source position, source type and largest sampled call cost.
- Scheduled/random block tick and block-event samples, including piston events.
- Registry mod sources with object counts and sampled work.
Large concentrations of falling sand can flag a possible sand farm or gravity device, with a location to investigate. Many dropped items can point to collection/storage pressure. This is evidence to check, not a promise to recognize every machine: sand falling naturally can produce the same signal, and counts alone do not prove lag.
Controls
G: toggle nearby inspection. Ctrl + G: administrator overview. Key binding can be changed in Controls.
/performance tps also works in the server console.
The HUD uses simple text, green/yellow/red pressure colors, and a small chunk wireframe. English and Simplified Chinese are included. LOW_END, NORMAL and SERVER profiles control detail, outlines and refresh frequency.
Installation
Minecraft 1.20.1, Forge 47.4.10+ in the 47.x series, Java 17. Install the JAR on both the server and connecting clients; singleplayer uses its integrated server. This first release is version 0.1.0.
Permissions and configuration
Normal players see only nearby loaded chunks in their current dimension. Operators (level 2 by default) see the server overview. Singleplayer owners can see the overview without enabling cheats. Permission checks happen on the server; remote positions and dimensions are never trusted from client requests.
Client settings: config/performanceanalyzer-client.toml (position, content, colors, profile, table rows, outline).
Server settings: <world>/serverconfig/performanceanalyzer-server.toml (refresh interval, nearby radius, permissions, analyzer toggles, warning thresholds and sampling limits). New-world modpack defaults can be provided in defaultconfigs/.
Counts are sampled periodically, by default every 100 server ticks, and work is spread across ticks. No world-wide per-tick census or forced chunk loading. Object/block timings run on roughly one tick in 20 while an inspection is active. Safety limits and incomplete samples are shown explicitly.
Boundaries
The mod never deletes entities, changes game rules or tunes the JVM. Sampled timings are approximate and do not comprehensively attribute all mod CPU time, chunk generation, lighting, networking or external JVM pauses. A brief lag spike can fall between sampled ticks. Source coordinates are observed examples, not guaranteed machine-controller positions. When evidence is insufficient, the HUD leaves the cause unexplained.
MIT license. An unofficial Minecraft mod, not affiliated with Mojang or Microsoft.