STYGION Documentation Search the docs

The profiler: whose code it was

/keystone profile samples the server thread with Flight Recorder and says, mod by mod, what each tick cost - with a flame graph, the costliest entities and the hottest chunks with whose claim they are. New in 0.3.

Keystone 0.2.8 Updated 1 min read
On this page 3 parts
  1. Running it
  2. What a report says
  3. Sharing

The profiler: whose code it was

New in 0.3, module profiler. It samples the server thread with Java's Flight Recorder - nothing is slowed down - and keeps the report as a page.

Running it

#
  • /keystone profile [seconds] (up to max-seconds, 300) starts a run; /keystone profile last says what the last one found (keystone.profile).
  • The editor's Profiler screen starts runs, shows every report, and has a live mode that repeats ten-second runs while the screen is open.
  • POST /v1/profiler/start (operations.run), GET /v1/profiler, GET /v1/profiler/report, POST /v1/profiler/live (status.read).

What a report says

#
  • Every mod in milliseconds of each tick, alone and with what it called.
  • A flame graph of the server thread.
  • The costliest kinds of entity and block entity (a jet engine, a drill).
  • The hottest chunks, with whose claim they are and a teleport to go and look.

keep (20) reports are kept in keystone/profiler; the oldest go.

Sharing

#

A report never leaves the server unless you turn share.enabled on and set share.url: an https address that takes the report as JSON (POST) and answers with a link in {"url": …} - your own page or a service you trust, with share.key as a Bearer token. Then /keystone profile share <id> or the editor's button sends it.

Did this page help?

Opens the feedback panel with this page attached. It lands in the same queue as everything else.