Unity Editor ProfilerRecorder 两层性能报告
基本信息
| 字段 | 值 |
|---|---|
| 日期 | 2026-06-23 |
| 运行面 | Unity Editor PlayMode |
| Unity 版本 | 2022.3.62f3 |
| 运行 ID | full-profiler-20260623-235558 |
| 前端 MR | http://192.168.0.11/minigame/project2/merge_requests/922 |
| 前端 head | affb1f2ba381c89ec5c8b0bd38919a991724cfe9 |
| 状态 | hold |
运行方式
本次报告使用 Project2 Unity Editor 性能 harness 采集两层数据:
- 第一层:运行时 frame samples,来自游戏循环和 Poco harness。
- 第二层:Unity
ProfilerRecordercounters,来自 Unity Profiler 内置 marker/counter。
执行命令:
python3 tools/project2_unity_editor_performance.py \
--output-root /Users/wjai/AutoDev/.local/logs/project2-unity-performance-profiler \
--run-id full-profiler-20260623-235558 \
--frontend-ref d17b407c-profiler-recorder-runtime-copy-on-522f1a150 \
--main-idle-seconds 60 \
--panel-idle-seconds 5 \
--final-idle-seconds 10 \
--pretty
运行时说明:fresh Unity batchmode 在隔离 worktree 上仍受当前 Codex 权限 profile 影响,Library/PackageCache 中 credential-named 文件恢复会被拒绝。因此本次真实 Unity 采集使用已打开且 Library 健康的 Unity Editor worktree,拷入 MR 中更新后的 PocoManager.cs 编译后执行。该限制属于本地执行环境问题,不作为 Project2 编译失败。
覆盖结果
| 检查项 | 结果 | 说明 |
|---|---|---|
| Click Start Game | pass | 成功点击开始游戏。 |
| Confirm Start | pass | 成功确认进入。 |
| Reach Main UI | pass | 主界面可见,识别到主 UI 文本。 |
面板探测
| 面板 | 结果 | 点击目标 | 识别 marker |
|---|---|---|---|
| 任务 | pass | TMPText_Missions | btn_Daily |
| 背包 | fail | icon_Backpack | none |
| 设置 | pass | icon_Settings | ViewSetting(Clone) |
| 召唤 | pass | btn_zhaohuan | ViewLotteryHero(Clone) |
第一层:Runtime Frame Samples
| 指标 | 值 |
|---|---|
| sample count | 7903 |
| frame time avg | 16.95304 ms |
| frame time p50 | 16.6901665 ms |
| frame time p90 | 17.613184 ms |
| frame time p95 | 18.906599 ms |
| frame time p99 | 22.1103439 ms |
| frame time max | 249.901962 ms |
| frames > 33ms | 22 |
| frames > 50ms | 14 |
| frames > 100ms | 4 |
| FPS avg | 59.79984 |
| FPS min | 4.00156927 |
| FPS p10 | 56.7756538 |
| FPS p50 | 59.91552 |
第二层:Unity ProfilerRecorder
| 指标 | avg | p95 | max | last |
|---|---|---|---|---|
| main_thread_time_ms | 1.96562052 | 3.80198717 | 249.783585 | 3.51575 |
| gc_allocated_in_frame_mb | 0.0353540666 | 0.00749588 | 4.24553776 | 0.0126190186 |
| gc_used_memory_mb | 1326.11218 | 1426.83911 | 1485.34375 | 1387.01172 |
| system_used_memory_mb | 3477.82153 | 3572.66064 | 3755.192 | 3552.14488 |
| total_used_memory_mb | 2044.20557 | 2177.024 | 2268.83984 | 2130.75010 |
| gfx_used_memory_mb | 288.4198 | 305.333557 | 331.2313 | 305.33355 |
| texture_memory_mb | 291.0306 | 320.138855 | 336.186768 | 320.13887 |
| mesh_memory_mb | 0.2385266 | 0.360813141 | 0.360813141 | 0.287361145 |
| setpass_calls_count | 0.06010376 | 0.0 | 49.0 | 0.0 |
| draw_calls_count | 0.110843986 | 0.0 | 117.0 | 0.0 |
| triangles_count | 1.48070347 | 0.0 | 1515.0 | 0.0 |
| vertices_count | 2.30191064 | 0.0 | 2363.0 | 0.0 |
ProfilerRecorder 有效计数器:18/20。
无效计数器:
| key | counter | 状态 |
|---|---|---|
render_thread_time_ms | Render Thread | invalid_recorder |
total_batches_count | Total Batches Count | invalid_recorder |
发现的问题
| 严重级别 | owner | 问题 | 证据 |
|---|---|---|---|
| P2 | frontend | 背包面板探测失败。 | 点击 icon_Backpack 后未识别到目标 marker。 |
| P2 | frontend | Unity Editor run 出现超过 100ms 的帧尖峰。 | frames_over_100ms=4,最大帧耗时 249.901962ms。 |
| P2 | frontend | 单帧 GC 分配峰值偏高。 | gc_allocated_in_frame_mb.max=4.24553776MB。 |
原始产物
原始运行产物保留在本机运行目录:
/Users/wjai/AutoDev/.local/logs/project2-unity-performance-profiler/full-profiler-20260623-235558/
关键文件:
unity-performance.mdunity-performance.jsonperformance-samples.jsonmain-ui.jpgpanel-*.jpghierarchy-*.json
验证记录
已执行:
PYTHONPYCACHEPREFIX=/private/tmp/project2-pycache python3 -m py_compile tools/project2_unity_editor_performance.py
python3 tools/project2_asset_guard.py --changed-only --pretty
git diff --check
Unity Editor PlayMode 采集完成后已退出 PlayMode。报告发现的问题未在本次检测任务中直接修复,后续应通过独立 MR 或 Plane follow-up 处理。