Skip to main content

Performance testing

RODENT measures the API and records the simulator observations separately because they have different bottlenecks.

Repeatable local API load check​

The application command below starts an isolated local server, creates its own temporary account/project data, sends concurrent requests and writes a JSON report:

python tools/api_load_test.py --requests 100 --concurrency 5 --json reports/api-load-local.json

The most recent local final-submission check completed 100 of 100 requests with no failures. It measured a first response of 196.31 ms, throughput of 5.04 requests per second, median latency of 976.74 ms and p95 latency of 1,255.47 ms on the development laptop. These numbers describe that machine and test shape, not a guaranteed production service level.

Gitea Actions runs a larger 200-request, concurrency-10 smoke test and uploads its JSON result. The job fails on request errors. This makes API performance regression visible while leaving true capacity testing for a controlled production-like environment.

Website and simulator observations​

The static portal loads before the Godot engine. The engine download is roughly 10 MB compressed, so first simulator readiness is slower than ordinary page navigation and depends heavily on network and browser caching. Team observations place first arena readiness around eight seconds on the tested connection. Record the browser, cache state, network and hardware whenever presenting that number.

The fixed-step engine separates simulation results from presentation speed. The 100x and Max modes reduce rendering work and advance fixed simulation steps as quickly as practical; they do not change the seed or the configured step rules. Fully headless SDK runs remove browser rendering and are the intended path for hundreds or thousands of trials.

Release measurements to keep​

  • first uncached page response and transferred bytes;
  • first uncached and cached simulator-ready time;
  • response to Start, Pause and a live door change;
  • 100x and Max simulated steps per wall-clock second;
  • headless steps per second and a 1,000-run batch duration;
  • API load-test request count, concurrency, failures, median, p95 and throughput; and
  • exact commit, hardware, browser, network and date.

The final report should distinguish measured numbers from design expectations. Performance does not justify skipping deterministic or scientific validation.

AI Attribution: This performance page was prepared with OpenAI Codex assistance from the repository load-test tool and recorded local output. Release-specific numbers must be regenerated for the submitted commit.