Skip to main content
Glama

get_performance

Read-only

Measure a Kit app stage's frame rate, frame time, GPU render time and physics performance to verify frame-rate targets and see what scene changes gain.

Instructions

Measure how fast the Kit app runs the open stage: the app loop's frames per second and frame time (mean, p50, p95, worst) over frames app updates after warmup; the GPU's render time a frame; while the simulation plays, the physics steps a frame, their time and the simulated-to-real ratio; GPU memory; the stage's prim, mesh and instance counts; the render products (cameras, lidars) rendering every update; and the conditions to compare two answers by: the GPU, the Kit app, the renderer, the timeline, headless or not, the frame-rate limiter, async rendering and eco mode.

Use it to check a frame-rate target, such as 15 FPS with a robot's sensors on, and to see what each cut of the scene gains. Play the simulation first, with the sensors on, so physics and rendering run as they will; a stopped timeline gives no physics numbers. Measure alone: a capture called meanwhile waits for the measurement, and any other call's work counts in its frames. It waits for the stage to finish loading, and stops at 90 s, answering what it measured.

While it measures, Kit's frame-rate limiter is lifted and put back after, so a playing stage with fixed time steps runs faster than real time for those seconds, and a robot driven from outside falls behind meanwhile. The render a capture keeps for the next one is released first, so the next capture sets up its view again. The answer notes when the run's two halves differ by more than 10% (measure again), when eco mode on a still timeline makes the stage read faster than it plays, and when a recording's camera counts in the numbers. The numbers are this machine's and GPU's: measure where the target must be met.

Input Schema

NameRequiredDescriptionDefault
framesNoApp updates to time, after the warm-up: 120 take 8 s at 15 FPS
warmupNoApp updates to let pass first, once the stage has loaded, so shaders and caches settle

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.1

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Far beyond the readOnlyHint/openWorldHint annotations: it discloses the 90 s cap, the load-wait, the blocking interaction with captures, the temporary lifting of the frame-rate limiter (and that a playing fixed-time-step stage runs faster than real time meanwhile), the release of a prior capture's render, and the built-in warnings for >10% variance and eco mode. The only slight tension is that readOnlyHint=true while the tool has transient environmental side effects (limiter state, discarded capture render) — not a data mutation, so not a contradiction, but the description is what makes that nuance visible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but well organized: purpose, then usage, then side effects, then interpretation caveats. Every sentence carries content, though the metrics enumeration in the first paragraph is long and a few phrases are awkward ('the GPU's render time a frame', 'the conditions to compare two answers by'), costing some readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a measurement tool with an output schema (so return shape needn't be explained), it covers what an agent needs to call it correctly: prerequisites, isolation requirements, timeout, machine-specificity of results, and how to tell when the numbers are untrustworthy. Nothing material is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already explains both parameters in nearly the same words ('app updates to let pass first, once the stage has loaded, so shaders and caches settle'). The description reinforces that the warmup precedes measurement and adds the 90 s overall cap, but adds no format, tuning, or interaction guidance for the two parameters beyond the schema — baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource: 'Measure how fast the Kit app runs the open stage', then enumerates exactly the metrics produced (FPS/frame time percentiles, GPU render time, physics step timing and sim-to-real ratio, GPU memory, prim/mesh/instance counts, render products, and the conditions for comparison). It is clearly distinct from siblings like get_mesh_stats or get_sim_state, which cover only a slice of this.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger ('check a frame-rate target, such as 15 FPS with a robot's sensors on'), a precondition ('Play the simulation first... a stopped timeline gives no physics numbers'), and an exclusion ('Measure alone: a capture called meanwhile waits for the measurement, and any other call's work counts in its frames'). This is the rare case where when-to-use, how-to-prepare, and what-not-to-do are all stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.