用途:当某一帧、渲染 pass、工作线程流水线或上传路径需要可归因证据,或队列/任务系统需要稳定的仪表、计数器、延迟与高水位指标,或性能结论需通过原生、Steam Deck、浏览器验收预算时,使用本技能。诊断回答“随时间发生了什么”,追踪回答“这次执行把时间花在哪里”,渲染诊断提供 pass 级渲染器测量;三者并用,但不能单独当作瓶颈证据。
主要能力与用法:用 DiagnosticPath 定义带命名空间、稳定且带单位的路径,先 register_diagnostic 再通过 Diagnostics 记录测量值(内置示例中以常量路径与 with_suffix 声明)。DiagnosticsStore 提供最新值与历史/平滑值供展示或导出。测量是延迟遥测,不是同系统内同步机制。内置插件:FrameTimeDiagnosticsPlugin(FPS、帧时间、帧数)、EntityCountDiagnosticsPlugin(实体数)、SystemInformationDiagnosticsPlugin(原生目标上的进程/系统 CPU 与内存,WASM、iOS 与动态链接构建不可用或为空操作)、LogDiagnosticsPlugin(开发输出,需过滤路径与频率)、RenderDiagnosticsPlugin(按记录的渲染 span 提供 CPU/GPU 时间与后端支持时的管线统计,路径形如 render/<span>/elapsed_cpu,支持时含 render/<span>/elapsed_gpu 与调用/图元统计)。追踪可用优化构建启用后端:cargo run --release --features bevy/trace_tracy 或 cargo run --release --features bevy/trace_chrome;trace_tracy_memory 增加分配追踪但开销更大。用 info_span! 包裹关键工作,避免高基数 span 名与逐元素 span。
限制:Bevy 0.19 渲染时间戳查询与管线统计仅支持 Vulkan 与 DX12;Metal、WebGPU、WebGL2 仅通过 RenderDiagnosticsPlugin 提供 CPU 渲染时间。缺失 elapsed_gpu 表示不受支持,不能当作零 GPU 开销。应针对发布渲染器、分辨率、电源模式、内容与构建配置剖析,桌面结果不能代表 Steam Deck 或浏览器预算。需测量并减少插桩开销。相关主题:bevy-voxel-runtime、bevy-rendering、bevy-testing。