BoomingTech / Piccolo

Piccolo (formerly Pilot) – mini game engine for games104
MIT License
5.86k stars 1.82k forks source link

添加CPU端性能分析工具 #282

Closed zzooOoOoozz closed 2 years ago

zzooOoOoozz commented 2 years ago

添加性能分析工具,在PiccoloEngine::initialize()中初始化,可选择传入false将其关闭,将待分析的函数使用Profiler::begin和Profiler::end包围,正常运行引擎,运行完毕后生成profiling.json文件,在edge(或chrome)浏览器中打开 edge://tracing 将该文件拖入其中以查看性能分析结果。

zzooOoOoozz commented 2 years ago

image image

Ol6rin commented 2 years ago

首先感谢为Piccolo引擎贡献代码,Piccolo的成长离不开社区开发者们的无私共享精神。 引擎中加入性能分析是有必要的,在游戏开发中需要测量各个系统各个环节的资源消耗为优化指明方向。 目前游戏引擎中比较常见的基于C++的性能分析工具有Optickeasy_profiler等。采用的方式一般是提前给需要测量的代码片段加标注,然后运行时连接上外部的Profile工具,在需要测量的时间段触发开始测量,通知引擎产生测量数据,最终分析、保存数据。另外架构上也会做一层抽象,不会直接和某种测量工具耦合。 基于上述原因,我们决定不合入这个改动。后续课程涉及到性能分析时,我们会接入相关功能的库。