2020-08-09

这周叕一次经历了针对具体项目进行优化的任务。针对这次性能优化进行一次回顾反思。

初期的茫然。拿到任务的时候,第一反应是茫然的,不同的项目千奇百怪,要如何优化项目呢?按照以往的经历,如果能分析出项目的性能瓶颈,那么就可以优先针对性能瓶颈进行优化。所幸chrome有专业的性能分析工具可以帮助分析js项目的性能瓶颈,所以第一步有了方向。

性能评测。经过性能评测,僵尸2的性能消耗很大一块在于buff的计算上,以及其他的也有几个零散的消耗点也值得优化。所以重点针对这几个点进行优化,将一些查询关系由遍历改为使用map缓存等等。

优化的瓶颈。以及优化到后期之后,性能评测工具的参考价值也逐渐降低,优化进入瓶颈,有些优化点只能借助历史经验和参考资料来进行,不过总体来看,性能评测其实已经帮助自己较大幅度优化了这个项目的性能。

性能优化收尾。经过一系列优化,大致的耗时优化为,1.2s降到0.68s,0.52s降到0.29s,其他的优化,性价比都已经不高,如果要继续优化,可能就不能局限于局部的优化,需要花费较多的时间,所以判断没有继续优化的必要了。

不足和改进。在优化的工程中,发觉有两个地方自己没有做好,影响到了后面优化的步伐。一个是没有第一时间建立性能实时对照组,只能凭记忆中的大致数据判断某个优化步骤有无提升、提升有多大,逻辑是否正确;另一个是项目缺少自动化测试代码,后期不能准确判断提交的优化代码本身是否存在bug,但因为时间有限,也不好临时编写项目的自动化测试代码。

经过这次优化任务,补充总结了一下性能优化的通常步骤

性能瓶颈分析。(可以借助性能分析工具进行,得到值得优化的性能优化点。如:chrome的js性能分析工具、unity的C#脚本和总体性能分析工具等。)

建立性能实时对照组。(帮助我们实时进行性能对照,帮助判断具体量化某个优化步骤的效果,以及优化后代码的逻辑正确性。)

编写性能优化点自动化测试代码。(用于检查优化代码是否存在bug,以及帮助自动量化评测代码优化前后的性能。)

性能优化点优化和优化技巧。(将一些查询关系由遍历改为使用map缓存、减少不必要的间接访问、第三方依赖库升级、代码复杂度优化等等,利用这些技巧优化性能优化点)

优化瓶颈判断。(仔细检查是否还存在有价值的优化空间,没有则可以收尾)

量化交付。(在新分支上交付代码优化,并将优化结果量化交付供项目组参考。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值