🧪 Status Effects — Diagnostics¶
This folder contains lightweight performance smoke tests for the Status Effects system.
These scripts are designed to help you:
- spot obvious GC allocations
- profile core apply/tick/recompute paths
- sanity-check time control and controller behaviour under load
They are not gameplay systems, not benchmark guarantees, and not part of the supported runtime API surface.
📂 Contents¶
| Script | Purpose |
|---|---|
StatusPerfSmoke |
Smoke-tests core status application through StatusRegistry and StatusEffectController. |
StatusRecomputePerfSmoke |
Smoke-tests RecomputePotencyForAll() and RecomputeDurationsForAll() across many active effects. |
StatusAuthorityTimePerfSmoke |
Smoke-tests time-mode toggling and custom time-source behaviour. |
⚠️ Important Notes¶
- These are diagnostics-only scripts intended for profiling in the Unity Editor.
- They use simple synthetic workloads, not production gameplay flows.
- Results will vary depending on:
- number of active statuses
- effect types used
- provider components present
- user-authored integrations and UI
- Clean results here do not guarantee that all custom effects or gameplay code are cheap.
🧠 Interpretation Guidance¶
If these smoke tests behave well but your game is still slow, the usual causes are:
- too many active effects on too many targets
- expensive custom effect logic
- heavy UI/event reactions
- extra work in integrations (Health, Movement, VFX, etc.)
- misuse patterns outside the Status core
Use the Unity Profiler as the source of truth.
💡 Key Idea¶
These scripts exist to answer one simple question:
“Are we doing anything obviously stupid under load?”
They are a quick confidence check — not a certification suite.