Define one interaction before measuring any revision.
A benchmark is useful only when the base and candidate perform the same work under a recorded editor contract.
Script the interaction
Name the exact script edit, asset touch or import, project-open state, and enter-play transition. Give the fixture a version so a changed sequence cannot masquerade as a code regression.
Pin the environment
Record Unity version, operating system and runner class, target platform, package lock, Enter Play Mode settings, cache policy, process-start policy, and relevant project settings.
Declare the comparison
Use an accepted base revision and one candidate revision. Preserve run ordering and intentional package, importer, assembly, or project-setting changes as revision input rather than normalizing them away.
Measure phases separately with documented signals.
Compilation, assembly reload, import, and enter-play time have different evidence and failure modes. A total alone hides where the loop moved.
Bracket compilation
Use Unity's compilation pipeline events to record assembly start and finish evidence, compiler messages, and terminal status. Do not include a failed compilation in a successful timing sample.
Treat reload as a lifecycle
Record the before/after assembly-reload boundary and any supported Editor-log timing. Persist evidence in a form that does not assume in-memory state survives the reload.
Trace imports and play transitions
Use Import Activity or documented Editor-log import records for asset path, duration, and reason; use play-mode state changes to bracket the declared enter-play transition.
Keep every sample and let noise stop the verdict.
One fast or slow editor session is an observation, not a regression policy.
Separate warm-up from measurement
Declare warm-up runs, discard them consistently, then run the same measured repetition count for base and candidate on the same runner and cache contract.
Report median and spread
Preserve individual samples, median, absolute and relative delta, and the agreed spread measure. Never hide a noisy distribution behind one rounded number.
Fail closed on divergence
Return unknown when metadata differs, a phase is missing or failed, the fixture changes, a log is incomplete, or variance exceeds the predeclared ceiling.
Make the budget explainable and reversible.
Iteration budgets should begin as review evidence and earn blocking authority only after the fixture proves stable and useful.
Budget each phase
Use phase-specific absolute and relative thresholds. A compile regression and an import regression have different owners, mitigations, and acceptable noise.
Separate observation from attribution
Report the measured phase first. Changed packages, assemblies, importers, or paths are supporting hypotheses only when an explicit rule connects them to the timing evidence.
Promote gates from history
Start in observe or review mode, replay representative historical changes, record false alarms and unknowns, and block only when the evaluator accepts the fixture and policy.
Inspect the underlying documentation.
This guide is XeSoft's evaluation framework, not a substitute for the source documentation. Links below go to the primary publisher.
Recent asset import duration, reason, dependencies, editor revision, and produced-artifact evidence.
UnityAsset Database import-time analysis ↗Unity documents extracting asset path, import duration, and extension from Editor.log import records.
UnityAssembly compilation started ↗Main-thread event raised when an assembly build starts.
UnityAssembly compilation finished ↗Assembly completion event with compiler-message evidence.
UnityAssembly reload events ↗Documented before- and after-assembly-reload lifecycle events.
UnityPlay-mode state changed ↗Editor event carrying transitions into and out of Play Mode.
UnityConfigurable Enter Play Mode ↗Domain- and scene-reload settings materially change the work performed when entering Play Mode.
Unity TechnologiesEditor Iteration Profiler ↗Unity's existing domain-reload profiling surface; the comparison contract should complement rather than imitate it.