- 有对象吗/用完了就藏东西,而不被删除,越积越多
- 内存泄漏,GC越来越频繁
- 内存太高,内存泄漏
- 检查是否有错误或无限循环
许多感觉到的大堵塞是由垃圾收集引起的;
记忆问题通常比CPU这个问题更难解决,甚至需要大规模的重建;
减少内存会让游戏更轻,其他小问题可以缓解 。
理念三:内存使用策略比内存释放策略更重要
【微信游戏在哪里 微信游戏在哪里设置不要好友看到】内存使用策略,通常应该在项目的早期阶段就制定出来,这里有一些建议:
- new对象必须由创建Factory或者Manager实行统一管理,这就完了,这对以后排除内存问题尤其重要;
- View和Model完全分离;
- View的创作精细到每一帧,按业绩创造;
- FpsManager根据帧速率动态调整阈值;
- 对象池的合理使用:“频繁的创造和毁灭”的“小型”对象采用对象池 。
在游戏程序中,很多内存来自资源,合理压缩资源是减少内存的有效方法 。关于资源压缩,这里有一些建议:
- 注意制作工艺,技术标准
- 原始图片资源的使用jpg还是png
- 是可以镜像处理的图片资源吗
- 相似的资源可以统一吗
- 避免在程序中使用过滤器和灰化
- 图片资源上一些不起眼的灯光效果或者羽毛效果可以用吗
- 字体图片,拆分和组合相同的单词
- 九格拉伸图的概念
- 理性行动、特效序列帧
1.抽帧
一些影响不大的关键帧可以删掉吗 。
2.再次放大
一些不起眼的部分,序列帧可以按比例缩小,当使用该程序时,再放大 。
3.砍方向
人物的左右资源可以通过旋转其中一个动作来实现吗?
需要各个方向的资源吗?
- 对称资源减半/使用四分之一反射镜
- 序列特效IDE进行替换
- UI全屏分辨率选择 1024像素
- icon尝试使用 64*64 的格式
- 使用pvrtc etc,png8格式
- UI使用背景最接近的那个2权力的大小
- 不要打相册里的背景,并尝试使用它jpg
- 少用口罩
- 使用单声道声音
当游戏出现性能瓶颈时,我们不得不考虑屏蔽一些游戏内容的显示,例如,一些次要的场景单元、特效等 。拦网必然会削弱玩家的游戏体验,但是,和卡顿比起来,甚至闪回了,适当的屏蔽规则是必要的 。
- 添加屏蔽设置,性能差时自动开启
- 该策略应涵盖所有类型的显示对象
- 一些场景使用统一的模型
积少成多,一些看起来很小的地方,但是处理方式不合理,也往往会影响游戏的表现,在《大天使之剑H5》中,我们在以下几个地方做了一些优化:
- 配置表数据优化
- String阵列方案
- 相似String的处理
- 版本文件,使用树存储来减少URL场的重复
- 类型被广泛使用并且变得更长
- 战报分析,细分分析
调试游戏时,我们经常依靠开发者工具来了解游戏的内存变化、CPU的使用、游戏中物体的整体情况、资源的应用、甚至是我们关注的变量值等等 。善于使用各种开发者工具可以让我们事半功倍 。
- 使用谷歌浏览器的开发者工具
1.console的使用
文章插图
Console的界面如上图所示,主要显示我们游戏运行的日志等信息 。在每根木头的后面,有一个链接可以快速跳转到输出日志的代码,在console的下方,具有输入框功能,我们可以通过在这里输入代码来改变当前游戏中的值、以不同的方式打印日志等 。
2.调试
我们可以在工具的Sources选项卡找到我们想要调试的内容JS,调试断点或条件断点 。
- 原手机号停用又忘记微信密码 微信密码忘记了怎么找回
- 微信重登如何找回聊天信息 微信重新登录后怎么恢复聊天记录
- 如何定位微信好友的位置 微信发定位怎么发
- 同一个wifi微信迁移不了 微信迁移聊天记录网络状况复杂
- 公务员机票在哪里购买
- 老款a6加油按钮在哪里
- 微信实名认证不是本人怎么改 微信实名认证怎么更改
- 微信怎么看谁浏览了你 看别人的朋友圈别人会知道吗
- 个人微信收款太多会被纳税吗 微信收款有限额吗
- 为什么店铺定位搜不到 如何将公司位置弄在微信定位上