Focused reference · Unreal Engine 5.8

Performance, testing, and debugging

unreal-save-load/references/performance-testing-debugging.md

Measure stages

Bookmark and time separately:

  • snapshot gathering and lock/quiesce time;
  • SaveGame object construction and validation;
  • game-thread serialization;
  • worker/platform write and callback latency;
  • read latency;
  • game-thread object creation/deserialization;
  • migration, asset resolution, world travel, actor apply, and post-load rebuilds;
  • payload bytes and record counts by subsystem.

Async persistence prevents the device IO from blocking the game thread, but UE 5.8 still serializes/ creates SaveGame objects on the game thread. Use Unreal Insights and packaged target builds to enforce a snapshot/serialization hitch budget.

Test matrix

  • first boot, new profile, overwrite, manual/autosave rotation, delete;
  • every supported released schema and a multi-version skip upgrade;
  • newer/unknown, wrong class, truncated, bit-corrupt, zero-byte, oversized, duplicate-ID saves;
  • removed/renamed definition, missing optional content, changed map/actor class;
  • disk/quota full, read-only, permission/native UI denial, unplug/suspend/kill at each boundary;
  • rapid requests, save during load, travel, death, logout, and stale callbacks;
  • multiple local/platform users, account switch, split screen, offline/cloud conflict;
  • dedicated/listen server authority, disconnect/reconnect, idempotent backend retry;
  • Development/Test/Shipping packaged builds and every target platform.

Never ship migration code without immutable real-world fixtures and expected post-migration assertions. Keep a diagnostic command/UI to report slot metadata and result codes without exposing payload secrets.