# 5. Profile Analyzer and Related Tools Part of [[Profiling and Optimization]]. Previous: [[4. Frame Debugger and GPU]]. Next: [[6. Quest Performance Budgets]]. > [!note] Verification status > Profile Analyzer **1.4.2** is the version released for Unity 6000.5 (1.4.0–1.4.2 available). Profiling Core **1.0.3** is released for 6000.5. The 6000.5 "Profiling tools reference" page also lists **Project Auditor**; the exact package version "released for" 6000.5 was **not pinned** in this write-up — check Package Manager. **No side-by-side capture was loaded.** ## 5.1 Why a second tool on top of the Profiler The Profiler is excellent at one frame. It is awkward at "did my change help over a 30-second walk?" **Profile Analyzer** (`com.unity.performance.profile-analyzer`, **1.4.2**) answers that: - **Multi-frame analysis** of one CPU capture (median, mean, min, max, lower/upper quartiles, a list of markers) - **Comparison** of two captures, so you can see which markers got faster or slower after a change Install the package, then open it from the Analysis menu (the package adds the window). Pull in a Profiler data set (or two), select the frame range that matches your verb, and sort markers by the difference in median time. This is the tool you use in step 5 of the workflow in part 1. It is also how you stop arguing from a single spike. ## 5.2 A clean comparison 1. Capture baseline and candidate in the **same** Player, same quality settings, same scene, same verb, same length. 2. On Quest, lock CPU/GPU levels (Meta's guidance) so clocks do not wander. 3. Discard the first few frames of each capture (loading, JIT, shader warmup). 4. Compare medians, not just the best frame. 5. If a marker you care about does not appear, you may need a `ProfilerMarker` (part 2) so the name is stable. Do not compare an Editor capture to a Player capture and call it a regression. ## 5.3 Profiling Core `com.unity.profiling.core` **1.0.3** is the package Unity's own tools use for markup and custom counters. If you need more than `ProfilerMarker` / `ProfilerRecorder` — for example, a custom counter other tools can see — start from this package's manual. Most projects never need to reference it directly; `Unity.Profiling` in the Editor already covers the teaching path in part 2. ## 5.4 Project Auditor The 6000.5 profiling-tools page lists **Project Auditor** as a report generator for scripts, assets and code issues (allocation patterns, missing settings, and similar). It is a useful *static* pass before you attach the Profiler: it can point at a `FindObjectsOfType` in `Update` without a 60-second capture. Because the "released for 6000.5" version was not confirmed here, install it from Package Manager, read the version you actually got, and treat its rules as hints to measure, not as automatic failures. There is also a **Project Auditor Rules** package on the 6000.5 released list; keep the two straight when you install. ## 5.5 Performance tests vs captures [[Unity Test Framework]] plus the Performance testing API can gate a micro-budget ("this sort must stay under N ms on the CI machine"). Profile Analyzer plus a human still owns "the courtyard walk on Quest 2." Use tests for regression of a function; use captures for regression of an experience. ## Official docs - Profiling tools reference: https://docs.unity.com/en-us/engine/6000.5/manual/analysis/performance-profiling-tools - Profile Analyzer 1.4.2: https://docs.unity.com/en-us/engine/6000.5/manual/packages-list/packages-all/pack-safe/com-unity-performance-profile-analyzer - Profiling Core 1.0.3: https://docs.unity.com/en-us/engine/6000.5/manual/packages-list/packages-all/pack-safe/com-unity-profiling-core