Home

Awesome

通用性能监控报表工具

工具想法由来

由于个人在开发一些公共模块对接各个项目中在解bug的时候碰到这样一个困惑,就是问到问题QA会反馈给我怎么这个资源不显示了,但这个是问题的表现,程序这边定位需要知道log到底是什么原因导致的,这时候就需要频繁的QA手机导出log日志,然后发给程序,加上沟通什么的,我就想优化流程,QA直接测完,我这边就知道知道Log日志了 还有一个场景就是QA现场走测,然后生成性能报告,大冬天现场一个手拿手机一个手拿电脑,一方面是冷,另一方面是不安全,万一摔了,还有一个问题就是时效性有延时,要等QA从万国回到工位整理数据生成数据报告,所以想能只拿一个手机,现场走测玩就能立马看到报告,而且相关研发人员也能立马看到报告结果 还有一个需求主要是我自己优化和自测,也需要自测性能报告,不能总是依赖QA来测试,毕竟QA从基地到万国来一趟也不容易,所以就有了开发这个工具的想法,一开始主要是为了方便自己自测用,后来做着做着感觉可以做成更通用的工具。

工具初衷

项目性能问题是一个贯穿项目研发始终的问题,就像研发工程师每天在开发新的功能之后QA每天都会关注是否产生新的bug,同样只要写了新代码就会带来或多或少的新的性能问题,产生的性能问题的大小取决于团队每个开发人员的代码素养和开发能力,每个人都不想写性能差的代码,只是有时候我们无意识的就写出来了,所以就需要有一个性能监控工具来给研发人员或QA做代码自检或者日常的测试检测,这样才能及时发现每天产生的bug或者性能问题,只有日常把性能问题当成跟bug一样的做好检测,才能在最后上线的时候尽可能少的碰到性能问题而要花大量的时间去定位和处理。现在有性能监控工具里面有设置的警戒值,并不是一种标准值,而是一个默许的约束规范,只要超过预警值的函数,每个人自己先去尝试优化自己的代码,优化不是某一两个人的事情,让全员参与其中,只有每个人都尽可能输出高质量高性能的代码,团队的成果才更有可能聚沙成塔,最终形成是一个高性能的聚合产品。

问题现状(能够解决的问题)

工具转正原因

原本初衷是一个方便自己自测的一个工具,做的也比较粗糙,做着做着感觉可以做成一个通用的解决方案,或许会问世面上也有现成的商业化的性能工具解决方案,为什么还要自己去再造轮子?基于这个问题,我思考了一下,据我了解,米哈游也有一个专门的团队在做自己的性能保障工具,关于自研的好处,原因如下 1.支持高度定制化扩展,自由灵活,满足自己公司项目的需求 2.安全隐私是最重要的,尤其对于大厂而言,高保密项目都是公司的战略方向,如果你用第三方的工具,且不说第三方的工具后台执行了什么代码你无法预知,而且将项目数据都上传到外网第三方公司,第一、大公司是否允许是一个问题,第二、存在数据泄露的问题,公司的保密项目都无法做到保密。 3.收费,而且是按照项目使用收费,也是一笔不小的开支 以上这是我能想到的两点,或许也是米哈游这类大厂要坚持自研的原因

本工具优点

体验地址

http://116.205.247.142:8080/

效果

总的效果图 资源内存分类统计报告 渲染统计报告 温度统计报告 功耗统计报告 电量统计报告 http://124.223.54.98/report_2022_1_21_14_33_30.html 支持帧图显示

使用说明

函数性能阀值约定

经过调研了解,我们约定如果函数连续帧持续开辟2k以上的内存,单个函数执行超过15毫秒,尤其是高频调用的函数就需要特别关注和优化

函数性能分析功能

如果需要打开函数性能分析功能模块代码,需要打开宏定义ENABLE_ANALYSIS,并且勾选GOTProfiler组件的Enable Function Analysis选项

函数性能监控特性使用

以上函数执行效率Excel报表 上面是函数性能分析特性的使用范例,下面是每个特性的详细说明

feature

说明

工程仓库

https://github.com/dingxiaowei/MonitorTool

备注

如果还需要支持其他性能报表,欢迎VX讨论:AladdinDXW