Governor

An on-screen frame-time readout and a repeatable benchmark that writes every frame to a CSV file with a JSON summary.
Governor

Governor

Slowest entities

Slowest entities

Benchmark result

Benchmark result

Description

Governor

Beta. An early build of Governor: expect bugs, you can report them on the Discord.

Governor measures frame times. It shows on screen where each frame goes, and it runs a repeatable benchmark that writes every frame to a file, so two runs can be compared. It changes nothing else in the game.

The readout

  • hudOverlay = true in config/governor-client.toml draws four rows in the top left corner. It is off by default.
  • FPS, the 1% low (the frame rate of the slowest 1% of frames) and the frame time, each an average over the last ten seconds.
  • "Slowest" names the part of the frame that takes longest: client tick, world, entities, block entities, particles or HUD.
  • It hides with the HUD (F1) and while the F3 screen is open.

Benchmark runs

  • The JVM argument -Dgovernor.bench=true arms one run per launch. It starts in the first world you enter.
  • It waits 30 seconds and for the chunks, then records 60 seconds while the view turns one full circle, by elapsed time and not by frames.
  • For the run vsync and the frame limiter are lifted and, in singleplayer, the time is set to noon and the weather cleared.
  • Afterwards the game rules, time, weather and options are put back, also when the game is closed during a run. The result appears in the chat.

Result files

  • A run writes to governor-bench in the game folder. frames-<tag>.csv has one line per frame with the time of each of its six parts.
  • summary-<tag>.json has the mean FPS, the 1% low, the 50th, 95th and 99th percentile frame times and the garbage collection pauses.
  • A sampler reads the render and server threads 100 times a second and writes collapsed stacks, which show whose code the time went to.
  • -Dgovernor.bench.duration=60, .settle=30, .tag=run and .out=<folder> change a run.

Requirements

Minecraft 1.21.1, Java 21, NeoForge 21.1. Client only. No other mod is needed.

This mod has been abandoned. It works fine, but it will not receive updates.


Join the Discord

NeoForge 1.21.1, client side. Free to use in modpacks.

Governor Team

profile avatar
  • 78
    Followers
  • 66
    Projects
  • 5.0M
    Downloads

More from falling_colud96View all