Egret社区

手机发烫和资源回收测试

2017-7-19 20:01
1799231
本帖最后由 funs 于 2017-8-18 14:47 编辑

本题已加入常见问题汇总 » 多媒体 & 资源最佳实践,更多多媒体 & 资源最佳实践相关的话题欢迎关注讨论

之前有玩家反馈玩我们游戏久了觉得有点烫,本人也很奇怪,因为之前游戏没有加资源回收时,手机是感觉不到烫的,自从加了资源回收手机有开始发烫了。
在论坛上找啊找,没找到相关的帖子
今天无聊做了个测试,研究一下手机发烫和资源回收什么关系。
测试比较简单,欢迎大家吐槽吐槽。
感谢:egret-Jerry、Egret-yjtx 共同分析

引擎:egret4.0.3
机器:一加1手机、红米note2手机、iphone6plus 各一台
游戏帧频:30
平台:web

测试一:单独加载1000个资源(png,本地资源)并回收对手机发烫的影响
每隔3秒进行一次加载和回收,没有添加到显示列表
测试时间大概十分钟
结果:
1. 一加1:比开始稍微烫(手感,同下)耗电非常快,十分钟刚刚好剩下10%电用完了
2,红米note2:比开始明显烫  (十分钟之后烫度加快)
3,ip6plus:比开始轻微烫(十分钟之后烫度明显,但比红米好很多)

部分测试代码:(this.resUrlData;为资源路径库)
    private resKeys: Object;
    private count: number = 0;
    private onTouchEventHanlder(): void {
        let obj: Object = this.resUrlData;

        if (this.resKeys) {
            let t: number = 0;
            for (var key in this.resKeys) {
                if (RES.destroyRes(key, true)) t++;
                this.count--;
            }
            this.resKeys = null;
            egret.log("this.count:" + this.count + " 回收成功数量:" + t)
            return;
        }
        this.resKeys = {};
        for (var key in obj) {
            if (key.indexOf(".png") >= 0) {
                RES.getResByUrl(key, this.onResAsync, this);
                this.resKeys[key] = key;
                this.count++;
                if (this.count >= 1000) {
                    egret.log("this.count:" + this.count)
                    return;
                }
            }
        }
    }

    private onResAsync(data: any = null, key:string): void {

    }


测试二:合成序列帧动画纹理并回收对手机发烫的影响
单独加载1000个动画资源(png+json),每隔3秒进行一次加载和回收,没有添加到显示列表
测试时间大概十分钟
结果:
1.安卓 一加1:比测试一的稍微烫
2,安卓 红米note2:比测试一的稍微烫
3,ip6plus:比测试一也稍微烫

测试三:加载资源对手机发烫的影响(这一步是为了做比较,有缓存肯定不烫了)
每次加载1000个资源,不回收(重复资源)
测试时间大概十分钟
结果:
1. 一加1:不烫
2,红米note2:不烫
3,ip6plus:不烫

测试四:加载不同资源对手机发烫的影响
每次加载N个资源,资源不重复,每隔300毫秒加载一个资源
测试时间大概十分钟
结果:
1. 一加1:会烫,但不明显。掉帧厉害(同步加载导致)
2,红米note2:会烫,但不明显。会稍微掉帧
3,ip6plus:轻微烫

对比测试一、二、三、四的测试来看,加载资源对手机发烫有影响,相比资源回收,手机发烫更严重。其实,在测试中,单位时间内回收越频繁,发烫越厉害。
和Jerry讨论,在egret底层回收仅仅是引用断开建的引用,不知道是否浏览器回收消耗比较大吧。由于测试的机型不多,数据可能不准:lol在大型游戏中,如果游戏内容非常丰富,资源回收是不可少的一步工作。比如:地图、角色(png+json)、技能、ui等等,量非常大。
如果你在排查游戏手机发烫问题,希望本次测试能够对你有用




分享到 :
6 人收藏

231 个回复

倒序浏览
Dante74  渐入佳境 | 2017-7-19 20:10:39
1
Niteip  略有小成 | 2017-7-19 20:52:01
Niteip,如果您要查看本帖隐藏内容请回复
枯藤老树昏鸦  登堂入室 | 2017-7-19 21:16:13
colorfulee  登堂入室 | 2017-7-19 21:41:15
disunit  登堂入室 | 2017-7-19 23:14:02
xsstomy  斑竹 | 2017-7-19 23:51:16
厉害了。。。频繁的加载和删除资源很让手机发烫,更具体的内容看帖子吧
xyl  圆转纯熟 | 2017-7-20 00:29:33
看看
windyqiang  登堂入室 | 2017-7-20 08:28:19
...
shenhua8369  登堂入室 | 2017-7-20 09:32:21
回复看看。。。。。。。。。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号

Powered by Discuz! X3.2 © 2001-2016 Comsenz Inc.

返回顶部