丘奕奕 发表于 2025-9-23 18:52:50

H5游戏性能优化系列-----cpu相关优化

cpu优化主要是优化cpu使用率,帧率平稳性(卡帧,长耗时任务),主要从以下几个方面优化

[*]设置合适的帧率。根据游戏类型设置合适的帧率,比如slg,回合制这种类型游戏一般开30帧,mmo等即时战斗的或者对流畅度有很高要求的可以开60帧。
[*]帧同步与状态同步的抉择。一般来说状态同步会比帧同步的前后端消息量大,也就说消息同步压力更大。但是状态同步前端实现起来比较简单,只用根据对应消息更新状态即可。
[*]分帧处理。对复杂逻辑进行分帧处理,比如后端返回的大量消息,存入消息队列中分帧处理,避免在同一帧处理大量的消息。
[*]将长任务利用setTimeout等api划分成多个短任务(八股文叫做微任务与宏任务),其实也算是另类分帧吧。
[*]使用对象池管理需要频繁创建和销毁的对象。
[*]在能使用worker的平台上,将耗时的任务放在worker中执行,比如zlib解压缩,图片解码等。
[*]在不能使用纹理压缩的平台上,png和jpg等原始图片的解码是很占用cpu的,可以使用二进制的方式加载图片,然后使用png和jpg解码库在worker中解码图像,或者使用createImageBitmap(非所有平台支持)。
[*]微信小游戏的ios平台,因为不支持jit导致js代码执行效率底下,cpu使用率会持续高位,如果内存优化到位的话,可以开启高性能模式。
[*]JS代码混淆。注意这里不是minify等压缩工具,而是像js-deobfuscator这种加密混淆工具,混淆程度严重影响js代码执行效率,混淆之后代码会变大,所以如果不是发行方要求尽量不混淆,如果非要混淆设置合适的混淆策略。
[*]Spine和龙骨动画的使用。这种动画在场景上一旦多起来了就很卡,即使spine的骨骼、顶点、网格、图集都优化的很好,也顶不住数量多了之后就会卡(很多用Spine或者龙骨作为角色模型和技能动画的都有类似问题,后面会单开一起讲讲Spine能优化的点)。
 
对于h5游戏,分析cpu相关性能指标我们一般用Chrome开发者工具的Performance,抓取一段时间内的游戏运行状态进行分析。
通过帧率的波形图,重点关注波峰位置,Task时间线的红色任务或者任务右上角带红色角标的任务,点击之后在下面的CallTree页签查看函数执行堆栈,找到函数执行中耗时的地方进行优化。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

匡菲 发表于 2025-10-12 14:53:46

用心讨论,共获提升!

屠焘 发表于 2025-11-9 02:14:48

不错,里面软件多更新就更好了

韦逸思 发表于 2025-11-26 17:27:59

谢谢楼主提供!

句惫 发表于 2026-1-5 10:54:56

热心回复!

颐港 发表于 2026-1-13 20:47:33

感谢分享

阎逼 发表于 2026-1-20 01:24:37

yyds。多谢分享

蜴间囝 发表于 2026-1-20 17:41:53

感谢发布原创作品,程序园因你更精彩

颛孙中 发表于 2026-1-21 07:39:36

谢谢分享,试用一下

扈怀易 发表于 2026-1-23 17:41:40

东西不错很实用谢谢分享

都淑贞 发表于 2026-1-25 03:49:02

懂技术并乐意极积无私分享的人越来越少。珍惜

丘娅楠 发表于 2026-1-28 23:21:47

谢谢分享,试用一下

崔和美 发表于 2026-1-30 04:56:47

分享、互助 让互联网精神温暖你我

济曝喊 发表于 2026-2-4 04:39:44

感谢,下载保存了

聱嘹 发表于 2026-2-4 06:06:32

喜欢鼓捣这些软件,现在用得少,谢谢分享!

笙芝 发表于 2026-2-4 06:26:55

谢谢分享,试用一下

昝梓菱 发表于 2026-2-4 09:20:12

收藏一下   不知道什么时候能用到

赐度虻 发表于 2026-2-4 09:56:26

用心讨论,共获提升!

梁丘眉 发表于 2026-2-6 03:24:49

感谢分享

格恳绌 发表于 2026-2-6 06:31:13

东西不错很实用谢谢分享
页: [1] 2
查看完整版本: H5游戏性能优化系列-----cpu相关优化