777腾讯手游助手内存不足内存非常感谢!?

后使用我的收藏没有帐号?
所属分类: &
查看: 13|回复: 0
777手游内存里面堵会有岀千吗?
发表于 昨天&23:55
777手游内存里面堵会有岀千吗?
大漠孤烟两人一马 与我共骑仗剑天涯!
黄晓明担任代言人 全平台公测送好礼!手游内存占用过高?如何快速定位手游内存问题a year ago41收藏分享举报文章被以下专栏收录每周分享优质干货,欢迎关注!{&debug&:false,&apiRoot&:&&,&paySDK&:&https:\u002F\u002Fpay.zhihu.com\u002Fapi\u002Fjs&,&wechatConfigAPI&:&\u002Fapi\u002Fwechat\u002Fjssdkconfig&,&name&:&production&,&instance&:&column&,&tokens&:{&X-XSRF-TOKEN&:null,&X-UDID&:null,&Authorization&:&oauth c3cef7c66aa9e6a1e3160e20&}}{&database&:{&Post&:{&&:{&isPending&:false,&contributes&:[{&sourceColumn&:{&lastUpdated&:,&description&:&测试是门艺术。&,&permission&:&COLUMN_PUBLIC&,&memberId&:407006,&contributePermission&:&COLUMN_PUBLIC&,&translatedCommentPermission&:&all&,&canManage&:true,&intro&:&每周分享优质干货,欢迎关注!&,&urlToken&:&wetest&,&id&:14445,&imagePath&:&08d5bdef6fc1c3e325ec6.jpeg&,&slug&:&wetest&,&applyReason&:&0&,&name&:&测试么么茶&,&title&:&测试么么茶&,&url&:&https:\u002F\u002Fzhuanlan.zhihu.com\u002Fwetest&,&commentPermission&:&COLUMN_ALL_CAN_COMMENT&,&canPost&:true,&created&:,&state&:&COLUMN_NORMAL&,&followers&:266,&avatar&:{&id&:&08d5bdef6fc1c3e325ec6&,&template&:&https:\u002F\u002Fpic2.zhimg.com\u002F{id}_{size}.jpg&},&activateAuthorRequested&:false,&following&:false,&imageUrl&:&https:\u002F\u002Fpic2.zhimg.com\u002F08d5bdef6fc1c3e325ec6_l.jpg&,&articlesCount&:44},&state&:&accepted&,&targetPost&:{&titleImage&:&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-106e4cefb494b2d15a7c12_r.jpg&,&lastUpdated&:,&imagePath&:&v2-106e4cefb494b2d15a7c12.jpg&,&permission&:&ARTICLE_PUBLIC&,&topics&:[976],&summary&:&针对手游的性能优化,腾讯WeTest平台的Cube工具提供了基本所有相关指标的检测,为手游进行最高效和准确的测试服务,不断改善玩家的体验。目前功能还在免费开放中。点击链接\u003Ca href=\&http:\u002F\u002Fwetest.qq.com\u002Fcube\u002F?from=content_zhihuzhuanlan\& data-editable=\&true\& data-title=\&Unity内核性能分析\& class=\&\&\u003EUnity性能分析\u003C\u002Fa\u003E立即体验! 作者:Oliver,腾讯WeTest团队产品经理。商业转载请联系腾…&,&copyPermission&:&ARTICLE_COPYABLE&,&translatedCommentPermission&:&all&,&likes&:0,&origAuthorId&:0,&publishedTime&:&T19:56:59+08:00&,&sourceUrl&:&&,&urlToken&:,&id&:1358374,&withContent&:false,&slug&:,&bigTitleImage&:false,&title&:&手游内存占用过高?如何快速定位手游内存问题&,&url&:&\u002Fp\u002F&,&commentPermission&:&ARTICLE_ALL_CAN_COMMENT&,&snapshotUrl&:&&,&created&:,&comments&:0,&columnId&:0,&content&:&&,&parentId&:0,&state&:&ARTICLE_PUBLISHED&,&imageUrl&:&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-106e4cefb494b2d15a7c12_r.jpg&,&author&:{&bio&:&时间是记忆的橡皮&,&isFollowing&:false,&hash&:&5bbb702df8af&,&uid&:96,&isOrg&:false,&slug&:&fan-he-66&,&isFollowed&:false,&description&:&我怎么会忘记你,我怎么能忘记你。&,&name&:&负荷&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Ffan-he-66&,&avatar&:{&id&:&2df3a223e0eacdebef61bc08b4b2baf3&,&template&:&https:\u002F\u002Fpic2.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},&memberId&:3265349,&excerptTitle&:&&,&voteType&:&ARTICLE_VOTE_CLEAR&},&id&:449309}],&title&:&手游内存占用过高?如何快速定位手游内存问题&,&author&:&fan-he-66&,&content&:&\u003Cp\u003E针对手游的性能优化,腾讯WeTest平台的Cube工具提供了基本所有相关指标的检测,为手游进行最高效和准确的测试服务,不断改善玩家的体验。目前功能还在免费开放中。点击链接\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=http%3A\u002F\u002Fwetest.qq.com\u002Fcube\u002F%3Ffrom%3Dcontent_zhihuzhuanlan\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003EUnity性能分析\u003C\u002Fa\u003E立即体验!\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E作者:Oliver,腾讯WeTest团队产品经理。商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处。\u003C\u002Fp\u003E\u003Cb\u003EWeTest导读\u003C\u002Fb\u003E\u003Cp\u003E为了避免手机性能成为游戏选择时的壁垒,游戏厂商必须进行更好的游戏性能优化。本文利用WeTest平台的\u003Cb\u003E\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=http%3A\u002F\u002Fwetest.qq.com\u002Fcube\u002F%3Ffrom%3Dcontent_zhihuzhuanlan\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003ECube\u003C\u002Fa\u003E\u003C\u002Fb\u003E工具,通过三步完成游戏内存检测与分析的过程,希望为游戏开发者提供一些内存优化的方法和思路。众所周知,手游在2016年进入了成熟期,全球的开发商数量在减少,游戏增速也在放缓,更少的游戏意味着高质量的游戏将获得更多的传播和更久的生命力,质量的提升就会带来画面的美化、场景的丰富等,对手机性能也带来了更多的考验。\u003Cstrong\u003E为了避免手机性能成为游戏选择时的壁垒,游戏厂商必须进行更好的游戏性能优化。\u003C\u002Fstrong\u003E那么,游戏性能是什么?游戏性能就是决定了\u003Cstrong\u003E游戏耐久度,承载能力\u003C\u002Fstrong\u003E和\u003Cstrong\u003E运行速度\u003C\u002Fstrong\u003E的因素。\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-ee54686ace6b091f827a887b3f12b8a8_b.jpg\& data-rawwidth=\&556\& data-rawheight=\&324\& class=\&origin_image zh-lightbox-thumb\& width=\&556\& data-original=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-ee54686ace6b091f827a887b3f12b8a8_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='556'%20height='324'&&\u002Fsvg&\& data-rawwidth=\&556\& data-rawheight=\&324\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&556\& data-original=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-ee54686ace6b091f827a887b3f12b8a8_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-ee54686ace6b091f827a887b3f12b8a8_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003C\u002Fp\u003E\u003Cp\u003E简单来说,游戏性能决定了你的游戏能否\u003Cstrong\u003E跑的更稳\u003C\u002Fstrong\u003E,\u003Cstrong\u003E跑的更久\u003C\u002Fstrong\u003E,\u003Cstrong\u003E跑的更快\u003C\u002Fstrong\u003E。进入了手游精品时代之后,为什么不管什么游戏,言必谈手游性能?因为在PC时代,如果游戏性能优化一般,玩家加个内存换个CPU或者刷个主频就能轻松搞定;到了手游时代后情况则显得比较严峻,捉襟见肘的内存使得资源加载时如履薄冰,加上高中低不同配置的机型让性能问题显得更加突出,对于玩家来说,为了一款游戏而更换手机的可能并不大,一个低端机型上的卡顿就可能造成一大批用户的流失,如果手游性能表现糟糕,再好的游戏设计都会付诸东流。\u003C\u002Fp\u003E\u003Cp\u003E那么什么样的手游才是更稳,更久,更快的呢?\u003C\u002Fp\u003E\u003Cbr\u003E我们一般看这样几个指标:\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-22660ddaab30ce5ef5b9_b.jpg\& data-rawwidth=\&933\& data-rawheight=\&685\& class=\&origin_image zh-lightbox-thumb\& width=\&933\& data-original=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-22660ddaab30ce5ef5b9_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='933'%20height='685'&&\u002Fsvg&\& data-rawwidth=\&933\& data-rawheight=\&685\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&933\& data-original=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-22660ddaab30ce5ef5b9_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-22660ddaab30ce5ef5b9_b.jpg\&\u003E\u003C\u002Ffigure\u003E对于手游来说,这些指标的情况就决定了游戏的实际表现,如果光看这些指标没有直观的感受,可以看下图:\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-5916758adffc6702658ab_b.jpg\& data-rawwidth=\&630\& data-rawheight=\&472\& class=\&origin_image zh-lightbox-thumb\& width=\&630\& data-original=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-5916758adffc6702658ab_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='630'%20height='472'&&\u002Fsvg&\& data-rawwidth=\&630\& data-rawheight=\&472\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&630\& data-original=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-5916758adffc6702658ab_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-5916758adffc6702658ab_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cp\u003E如果说左边是玩家经常会遭遇到的表面现象,那右边则是基于手游性能深挖后的问题本质。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E为了让游戏的优化能够更加系统,更加有的放矢,腾讯WeTest将监控手游性能相关的每个指标,并根据测试的结果进行优化。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E那么,先来说说手游性能的重头,内存指标的检测。为什么是重头呢?内存的占用过高通常会带来“游戏闪退”、“卡顿”、“系统重启”等现象,其中每一个结果基本都对游戏的体验是致命的。之前腾讯WeTest公众号先后发布了两篇关于Unity游戏内存管理的文章:\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=http%3A\u002F\u002Fmp.weixin.qq.com\u002Fs%3F__biz%3DMzA3NjA3NTI5Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3D81e7c9481ce03dadccfd6%26scene%3D21%23wechat_redirect\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E《内存是手游的硬伤——Unity游戏Mono内存管理与泄漏》\u003C\u002Fa\u003E和\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=http%3A\u002F\u002Fmp.weixin.qq.com\u002Fs%3F__biz%3DMzA3NjA3NTI5Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3De7f5af34b3bafscene%3D21%23wechat_redirect\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E《深入浅出再谈Unity内存泄漏》\u003C\u002Fa\u003E,详细介绍了Unity游戏中内存泄漏会导致的后果以及一些解决的办法,这次我们将继续从腾讯WeTest平台的\u003Cb\u003E\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=http%3A\u002F\u002Fwetest.qq.com\u002Fcube\u002F%3Ffrom%3Dcontent_zhihuzhuanlan\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003ECube工具\u003C\u002Fa\u003E\u003C\u002Fb\u003E出发,通过简单的三步,介绍如何通过内存的检测,发现内存管理的问题,优化手游的性能。\u003C\u002Fp\u003E\u003Cbr\u003E第一步:测试游戏apk\u003Cp\u003E\u003Cstrong\u003E首先要注意:手机必须root \u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cstrong\u003E1、安装WeTest助手\u003C\u002Fstrong\u003E登录\u003Cstrong\u003E\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=http%3A\u002F\u002Fwetest.qq.com\u002F\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003EWeTest腾讯质量开放平台\u003C\u002Fa\u003E\u003C\u002Fstrong\u003E,在“产品“菜单下选择”性能测试“,点击”Unity客户端性能测试“\u003Cp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-0f2088eac37da9adf32f_b.jpg\& data-rawwidth=\&948\& data-rawheight=\&386\& class=\&origin_image zh-lightbox-thumb\& width=\&948\& data-original=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-0f2088eac37da9adf32f_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='948'%20height='386'&&\u002Fsvg&\& data-rawwidth=\&948\& data-rawheight=\&386\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&948\& data-original=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-0f2088eac37da9adf32f_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-0f2088eac37da9adf32f_b.jpg\&\u003E\u003C\u002Ffigure\u003E或者直接登录\u003Cstrong\u003E\u003Ca href=\&%E9%92%88%E5%AF%B9%E6%89%8B%E6%B8%B8%E7%9A%84%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%EF%BC%8C%E8%85%BE%E8%AE%AFWeTest%E5%B9%B3%E5%8F%B0%E7%9A%84Cube%E5%B7%A5%E5%85%B7%E6%8F%90%E4%BE%9B%E4%BA%86%E5%9F%BA%E6%9C%AC%E6%89%80%E6%9C%89%E7%9B%B8%E5%85%B3%E6%8C%87%E6%A0%87%E7%9A%84%E6%A3%80%E6%B5%8B%EF%BC%8C%E4%B8%BA%E6%89%8B%E6%B8%B8%E8%BF%9B%E8%A1%8C%E6%9C%80%E9%AB%98%E6%95%88%E5%92%8C%E5%87%86%E7%A1%AE%E7%9A%84%E6%B5%8B%E8%AF%95%E6%9C%8D%E5%8A%A1%EF%BC%8C%E4%B8%8D%E6%96%AD%E6%94%B9%E5%96%84%E7%8E%A9%E5%AE%B6%E7%9A%84%E4%BD%93%E9%AA%8C%E3%80%82%E7%9B%AE%E5%89%8D%E5%8A%9F%E8%83%BD%E8%BF%98%E5%9C%A8%E5%85%8D%E8%B4%B9%E5%BC%80%E6%94%BE%E4%B8%AD%E3%80%82%E7%82%B9%E5%87%BB%E9%93%BE%E6%8E%A5Unity%E5%86%85%E6%A0%B8%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%90%E7%AB%8B%E5%8D%B3%E4%BD%93%E9%AA%8C%EF%BC%81\& class=\&\&\u003EUnity内核性能分析\u003C\u002Fa\u003E\u003C\u002Fstrong\u003E,点击“Android版 下载”,也在页面末尾扫描二维码直接下载。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic7.zhimg.com\u002Fv2-6e724a1f74ec7cb0ad8a19e_b.jpg\& data-rawwidth=\&788\& data-rawheight=\&482\& class=\&origin_image zh-lightbox-thumb\& width=\&788\& data-original=\&https:\u002F\u002Fpic7.zhimg.com\u002Fv2-6e724a1f74ec7cb0ad8a19e_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='788'%20height='482'&&\u002Fsvg&\& data-rawwidth=\&788\& data-rawheight=\&482\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&788\& data-original=\&https:\u002F\u002Fpic7.zhimg.com\u002Fv2-6e724a1f74ec7cb0ad8a19e_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic7.zhimg.com\u002Fv2-6e724a1f74ec7cb0ad8a19e_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-b416d7b31bdb5a9051d1_b.jpg\& data-rawwidth=\&905\& data-rawheight=\&357\& class=\&origin_image zh-lightbox-thumb\& width=\&905\& data-original=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-b416d7b31bdb5a9051d1_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='905'%20height='357'&&\u002Fsvg&\& data-rawwidth=\&905\& data-rawheight=\&357\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&905\& data-original=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-b416d7b31bdb5a9051d1_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-b416d7b31bdb5a9051d1_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cstrong\u003E2、登录\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp\u003E安装好客户端后点击WeTest助手启动,选择一种账号登录方式登录。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-b1a4759bea2f5e59f8bf5_b.jpg\& data-rawwidth=\&564\& data-rawheight=\&422\& class=\&origin_image zh-lightbox-thumb\& width=\&564\& data-original=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-b1a4759bea2f5e59f8bf5_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='564'%20height='422'&&\u002Fsvg&\& data-rawwidth=\&564\& data-rawheight=\&422\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&564\& data-original=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-b1a4759bea2f5e59f8bf5_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-b1a4759bea2f5e59f8bf5_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cstrong\u003E3、测试\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp\u003E测试类型选择“\u003Cstrong\u003E\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=http%3A\u002F\u002Fwetest.qq.com\u002Fcube\u002F%3Ffrom%3Dcontent_zhihuzhuanlan\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003ECube\u003C\u002Fa\u003E\u003C\u002Fstrong\u003E”。\u003C\u002Fp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-1e0de928cfa63c72231cab0a_b.jpg\& data-rawwidth=\&232\& data-rawheight=\&244\& class=\&content_image\& width=\&232\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='232'%20height='244'&&\u002Fsvg&\& data-rawwidth=\&232\& data-rawheight=\&244\& class=\&content_image lazy\& width=\&232\& data-actualsrc=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-1e0de928cfa63c72231cab0a_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cp\u003E①首先确认“手机状态”为”手机已Root“;\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E②点击“应用选择”选择需要测试的应用(选择Unity游戏) ,非Unity游戏可以点击“通用性能检测”\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-b47f6da98bc08f4b3b11_b.jpg\& data-rawwidth=\&330\& data-rawheight=\&599\& class=\&content_image\& width=\&330\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='330'%20height='599'&&\u002Fsvg&\& data-rawwidth=\&330\& data-rawheight=\&599\& class=\&content_image lazy\& width=\&330\& data-actualsrc=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-b47f6da98bc08f4b3b11_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-86e0bb7d552cb50d8f752e_b.jpg\& data-rawwidth=\&344\& data-rawheight=\&615\& class=\&content_image\& width=\&344\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='344'%20height='615'&&\u002Fsvg&\& data-rawwidth=\&344\& data-rawheight=\&615\& class=\&content_image lazy\& width=\&344\& data-actualsrc=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-86e0bb7d552cb50d8f752e_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cp\u003E③选择测试类型,测试类型分为四类:Unity性能测试(标准)、Unity性能测试(重度)、Unity资源测试、Mono内存检测。\u003C\u002Fp\u003E\u003Cp\u003E那么这时候,问题就来了,一般应该先开始进行哪项测试呢?\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cstrong\u003E选项一:Unity性能测试(标准)\u003C\u002Fstrong\u003E首先我们看第一个,Unity性能测试(标准),该测试主要满足Unity引擎游戏日常性能审核的测试需求,覆盖FPS、CPU、PSS、Mono内存峰值四个维度;\u003Cstrong\u003E建议使用该测试获取准确性能数据,了解游戏的一个整体的性能表现\u003C\u002Fstrong\u003E,如果测试结果良好,说明游戏目前的性能表现已经非常好了,可以不需要进行很大程度的优化;如果测试结果不好,则可以考虑进行其他的测试模块。 \u003Cstrong\u003E选项二:Unity性能测试(重度)\u003C\u002Fstrong\u003E\u003Cp\u003E该测试在性能测试(标准)的基础上,增加了函数耗时统计、单个FPS点中各帧的帧时间、Drawcall数量及每个函数具体出现的位置;\u003Cstrong\u003E建议使用该测试定位性能问题,为之后的性能优化做准备。\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cstrong\u003E选项三:Unity资源测试\u003C\u002Fstrong\u003E\u003Cp\u003E该测试可以获取游戏过程中多种资源数据,包括资源重复率、GameObject数量 、2D纹理大小 、网格大小 、动画剪辑大小 、音频大小 、关卡间保留资源 、Material对象拷贝数量等。\u003Cstrong\u003E建议在对内存优化进入到了资源阶段的时候,可以进行这个测试。\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cstrong\u003E选项四:Mono内存检测\u003C\u002Fstrong\u003E该测试提供了获取快照点的Mono内存对象情况(对象类型、对象大小、对象堆栈、对象引用关系 等);\u003Cstrong\u003E建议在定位存在问题的内存时,可以进行这个测试。\u003C\u002Fstrong\u003E\u003Cbr\u003E④确定测试类型之后,点击“开始测试”\u003Cp\u003EA.Unity性能测试(标准)、Unity性能测试(重度)、Unity资源测试中都可以通过点击“开始记录”、“结束记录”来记录核心场景的性能数据、资源数据。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-bed41e99ec8ee9d8908ed0b_b.jpg\& data-rawwidth=\&1224\& data-rawheight=\&689\& class=\&origin_image zh-lightbox-thumb\& width=\&1224\& data-original=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-bed41e99ec8ee9d8908ed0b_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='1224'%20height='689'&&\u002Fsvg&\& data-rawwidth=\&1224\& data-rawheight=\&689\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&1224\& data-original=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-bed41e99ec8ee9d8908ed0b_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-bed41e99ec8ee9d8908ed0b_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-eec5d5f8cc_b.jpg\& data-rawwidth=\&1228\& data-rawheight=\&691\& class=\&origin_image zh-lightbox-thumb\& width=\&1228\& data-original=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-eec5d5f8cc_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='1228'%20height='691'&&\u002Fsvg&\& data-rawwidth=\&1228\& data-rawheight=\&691\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&1228\& data-original=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-eec5d5f8cc_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-eec5d5f8cc_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cp\u003EB.Mono内存检测中通过点击“mono内存快照”获取当前mono内存的详细情况,单次测试中可以任意在需要快照点的位置设置快照。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-70a1ee4f8b342e134acb7_b.jpg\& data-rawwidth=\&1142\& data-rawheight=\&642\& class=\&origin_image zh-lightbox-thumb\& width=\&1142\& data-original=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-70a1ee4f8b342e134acb7_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='1142'%20height='642'&&\u002Fsvg&\& data-rawwidth=\&1142\& data-rawheight=\&642\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&1142\& data-original=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-70a1ee4f8b342e134acb7_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-70a1ee4f8b342e134acb7_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cp\u003E⑤“上传”,退出游戏,选择测试游戏的游戏类型(最多选择两类),点击“确定”,在弹出的上传页,点击“上传”,完成数据的上传。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-4ad317727fedd593dd5f9eaceffac544_b.jpg\& data-rawwidth=\&343\& data-rawheight=\&614\& class=\&content_image\& width=\&343\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='343'%20height='614'&&\u002Fsvg&\& data-rawwidth=\&343\& data-rawheight=\&614\& class=\&content_image lazy\& width=\&343\& data-actualsrc=\&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-4ad317727fedd593dd5f9eaceffac544_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-126bf85722b8fecb6a12b9e0231d58fe_b.jpg\& data-rawwidth=\&344\& data-rawheight=\&611\& class=\&content_image\& width=\&344\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='344'%20height='611'&&\u002Fsvg&\& data-rawwidth=\&344\& data-rawheight=\&611\& class=\&content_image lazy\& width=\&344\& data-actualsrc=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-126bf85722b8fecb6a12b9e0231d58fe_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cstrong\u003E4.日志\u003C\u002Fstrong\u003E\u003Cp\u003E日志主要是记录历史测试数据,显示历史测试中数据是否上传的状态,绿色为“已上传”,红色为“未上传”。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E通过点击“清空历史记录”可以清除客户端的日志中记录的历史数据。\u003C\u002Fp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-34438afb11befc6e68de4_b.jpg\& data-rawwidth=\&343\& data-rawheight=\&614\& class=\&content_image\& width=\&343\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='343'%20height='614'&&\u002Fsvg&\& data-rawwidth=\&343\& data-rawheight=\&614\& class=\&content_image lazy\& width=\&343\& data-actualsrc=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-34438afb11befc6e68de4_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cbr\u003E\u003Ch2\u003E第二步:查看报告中的内存情况\u003C\u002Fh2\u003E\u003Cp\u003E点击“我的主页”\u003C\u002Fp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-690f400063ecb2bde95ee16ca1f8ca25_b.jpg\& data-rawwidth=\&225\& data-rawheight=\&174\& class=\&content_image\& width=\&225\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='225'%20height='174'&&\u002Fsvg&\& data-rawwidth=\&225\& data-rawheight=\&174\& class=\&content_image lazy\& width=\&225\& data-actualsrc=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-690f400063ecb2bde95ee16ca1f8ca25_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cp\u003E测试类型选择“\u003Cstrong\u003E\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=http%3A\u002F\u002Fwetest.qq.com\u002Fcube\u002F%3Ffrom%3Dcontent_zhihuzhuanlan\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003ECube\u003C\u002Fa\u003E\u003C\u002Fstrong\u003E”\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-fdcbbeb20_b.jpg\& data-rawwidth=\&900\& data-rawheight=\&425\& class=\&origin_image zh-lightbox-thumb\& width=\&900\& data-original=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-fdcbbeb20_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='900'%20height='425'&&\u002Fsvg&\& data-rawwidth=\&900\& data-rawheight=\&425\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&900\& data-original=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-fdcbbeb20_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-fdcbbeb20_b.jpg\&\u003E\u003C\u002Ffigure\u003E找到测试报告,点击“查看”\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic8.zhimg.com\u002Fv2-4265cee419f33eb09e3a3db0_b.jpg\& data-rawwidth=\&800\& data-rawheight=\&96\& class=\&origin_image zh-lightbox-thumb\& width=\&800\& data-original=\&https:\u002F\u002Fpic8.zhimg.com\u002Fv2-4265cee419f33eb09e3a3db0_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='800'%20height='96'&&\u002Fsvg&\& data-rawwidth=\&800\& data-rawheight=\&96\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&800\& data-original=\&https:\u002F\u002Fpic8.zhimg.com\u002Fv2-4265cee419f33eb09e3a3db0_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic8.zhimg.com\u002Fv2-4265cee419f33eb09e3a3db0_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Ch2\u003E第三步:分析报告\u003C\u002Fh2\u003E\u003Cp\u003E如果要对手游内存管理进行优化,首先要明确一个分析的策略,\u003Cstrong\u003E\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=http%3A\u002F\u002Fwetest.qq.com\u002Fcube\u002F%3Ffrom%3Dcontent_zhihuzhuanlan\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003ECube\u003C\u002Fa\u003E\u003C\u002Fstrong\u003E团队的建议是看四块内容:\u003C\u002Fp\u003E\u003Col\u003E\u003Cli\u003E了解手游内存整体表现\u003Cbr\u003E\u003C\u002Fli\u003E\u003Cli\u003E通过mono内存查看是否发生内存泄漏\u003Cbr\u003E\u003C\u002Fli\u003E\u003Cli\u003E通过mono快照定位存在问题的内存\u003Cbr\u003E\u003C\u002Fli\u003E\u003Cli\u003E通过内存分配总表定位存在问题的函数 \u003Cbr\u003E\u003C\u002Fli\u003E\u003C\u002Fol\u003E\u003Cbr\u003E\u003Cp\u003E\u003Cstrong\u003E1、了解手游内存整体表现\u003C\u002Fstrong\u003E要观察手游内存的整体表现,首先观察游戏的堆内存峰值是否超过了建议值,如下图:\u003C\u002Fp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-eb90e3cee105b951eedec_b.jpg\& data-rawwidth=\&995\& data-rawheight=\&581\& class=\&origin_image zh-lightbox-thumb\& width=\&995\& data-original=\&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-eb90e3cee105b951eedec_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='995'%20height='581'&&\u002Fsvg&\& data-rawwidth=\&995\& data-rawheight=\&581\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&995\& data-original=\&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-eb90e3cee105b951eedec_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-eb90e3cee105b951eedec_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cp\u003E其中,\u003Cb\u003E建议值\u003C\u002Fb\u003E的来源是根据腾讯内部的性能标准,对手机的配置等级而形成的内存阈值,图中的高配机型,PSS内存峰值到达450MB或者mono内存到达50MB的时候就会开始预警。\u003C\u002Fp\u003E\u003Cp\u003E如果需要更加详细的指标情况,可以选择“性能报告”部分中的“mono内存”:\u003C\u002Fp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-bd4bba23bea4e_b.jpg\& data-rawwidth=\&241\& data-rawheight=\&497\& class=\&content_image\& width=\&241\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='241'%20height='497'&&\u002Fsvg&\& data-rawwidth=\&241\& data-rawheight=\&497\& class=\&content_image lazy\& width=\&241\& data-actualsrc=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-bd4bba23bea4e_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cp\u003E如下图,我们可以看到内存峰值的超标线,如果超过,那么那一刻你的游戏极有可能出现上述“闪退”,“卡顿”和“系统重启”的现象了;如果没有超过,那么恭喜你,继续进入下一个关卡,检查你的游戏是否存在内存泄漏的现象。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-34bae46db466e7cc909cf_b.jpg\& data-rawwidth=\&1031\& data-rawheight=\&549\& class=\&origin_image zh-lightbox-thumb\& width=\&1031\& data-original=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-34bae46db466e7cc909cf_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='1031'%20height='549'&&\u002Fsvg&\& data-rawwidth=\&1031\& data-rawheight=\&549\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&1031\& data-original=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-34bae46db466e7cc909cf_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-34bae46db466e7cc909cf_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cp\u003E\u003Cstrong\u003E2、通过mono内存查看是否发生内存泄漏\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp\u003E对于目前绝大多数基于Unity引擎开发的项目而言,其托管堆内存是由Mono分配和管理的。“托管” 的本意是Mono可以自动地改变堆的大小来适应你所需要的内存,并且适时地调用垃圾回收(Garbage Collection)操作来释放已经不需要的内存,从而降低开发人员在代码内存管理方面的门槛。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E那么我们所说的内存泄漏情况,就是游戏在调用了一些资源结束之后(比如MOBA游戏中的5V5副本),没有及时的释放这些内存,从而导致堆内存的大小越来越多,从而超过了手机内存的阈值。\u003C\u002Fp\u003E\u003Cbr\u003E在比较合理的内存策略下,mono内存应该上升到一定阶段之后便不再变化,如下图:\u003Cbr\u003E\u003Cp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-fcfe_b.jpg\& data-rawwidth=\&986\& data-rawheight=\&400\& class=\&origin_image zh-lightbox-thumb\& width=\&986\& data-original=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-fcfe_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='986'%20height='400'&&\u002Fsvg&\& data-rawwidth=\&986\& data-rawheight=\&400\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&986\& data-original=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-fcfe_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-fcfe_b.jpg\&\u003E\u003C\u002Ffigure\u003E如果内存产生了泄漏,便有可能出现下图的情况,堆内存的数值阶段性的不断提升。\u003C\u002Fp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-bdbf61b5de4ccb9c0651e0_b.jpg\& data-rawwidth=\&972\& data-rawheight=\&354\& class=\&origin_image zh-lightbox-thumb\& width=\&972\& data-original=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-bdbf61b5de4ccb9c0651e0_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='972'%20height='354'&&\u002Fsvg&\& data-rawwidth=\&972\& data-rawheight=\&354\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&972\& data-original=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-bdbf61b5de4ccb9c0651e0_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-bdbf61b5de4ccb9c0651e0_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cp\u003E如果你的游戏堆内存出现了不断上升的情况,需要排查一些内存泄漏的原因,可以进入下一个阶段,检查具体场景中内存的分配情况。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cstrong\u003E3、通过mono快照定位存在问题的内存 \u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp\u003E对于mono内存泄漏,一般只能通过猜测+不断修改代码测试的方法来修复问题,效率很低,腾讯WeTest平台的\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=http%3A\u002F\u002Fwetest.qq.com\u002Fcube\u002F%3Ffrom%3Dcontent_zhihuzhuanlan\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003ECube工具\u003C\u002Fa\u003E提供了mono内存快照对比的功能,并包括对象分配堆栈,对象引用关系等详细信息,是定位mono内存泄漏问题的一大利器。在具体操作中,需要我们进行一次“mono内存检测“,具体操作可见上文”第一步“和”第二步“。\u003C\u002Fp\u003E\u003Cbr\u003E在“mono内存检测“的测试报告中,我们可以发现测试报告对每个场景都进行了标记,形成了一个”snapshot(快照)“,对比两次snapshot,查看两者之间的新增对象:\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-1f7ed9b8e5b1_b.jpg\& data-rawwidth=\&1035\& data-rawheight=\&541\& class=\&origin_image zh-lightbox-thumb\& width=\&1035\& data-original=\&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-1f7ed9b8e5b1_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='1035'%20height='541'&&\u002Fsvg&\& data-rawwidth=\&1035\& data-rawheight=\&541\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&1035\& data-original=\&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-1f7ed9b8e5b1_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-1f7ed9b8e5b1_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cp\u003E这些不同的snapshot内存使用情况的波动意味着游戏在进行游戏内存分配和释放,通过对这些snapshot进行对比,可以发现哪些内存新增了,哪些内存保留了,从而找到游戏在内存分配上产生的问题,那么如何进行操作呢?\u003C\u002Fp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-c46aa19f76adfa7e0e0edd_b.jpg\& data-rawwidth=\&1016\& data-rawheight=\&308\& class=\&origin_image zh-lightbox-thumb\& width=\&1016\& data-original=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-c46aa19f76adfa7e0e0edd_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='1016'%20height='308'&&\u002Fsvg&\& data-rawwidth=\&1016\& data-rawheight=\&308\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&1016\& data-original=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-c46aa19f76adfa7e0e0edd_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-c46aa19f76adfa7e0e0edd_b.jpg\&\u003E\u003C\u002Ffigure\u003E如上图所示,在“mono内存检测“的测试报告中,每两个snapshot都可以进行对比,通过鼠标单击就可以选择,选中两个场景之后就可以点击”提交对比“:\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-b7cd8a4ee5ef6b50c30e445ff6eaba5a_b.jpg\& data-rawwidth=\&513\& data-rawheight=\&289\& class=\&origin_image zh-lightbox-thumb\& width=\&513\& data-original=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-b7cd8a4ee5ef6b50c30e445ff6eaba5a_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='513'%20height='289'&&\u002Fsvg&\& data-rawwidth=\&513\& data-rawheight=\&289\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&513\& data-original=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-b7cd8a4ee5ef6b50c30e445ff6eaba5a_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-b7cd8a4ee5ef6b50c30e445ff6eaba5a_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cp\u003E点击之后会得到两个场景之间的内存分配比较,其中”对象堆栈“就代表游戏中实现的一个对象,以MOBA游戏为例,上图中的snapshot1和snapshot2所对应的两个场景可能就是“5V5战斗副本“和”游戏大厅“,通过右上角的”快照间新增top50“和”快照间保留top50“,我们可以了解到这两个不同的场景之间,哪些对象的资源被保留了,哪些对象的资源新增了(如果需要更多数据,可以点击右上角的”下载对比报表“),而这些行为是否是游戏程序所需要的。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-aeca7bdabe52c9b6ad83_b.jpg\& data-rawwidth=\&1019\& data-rawheight=\&502\& class=\&origin_image zh-lightbox-thumb\& width=\&1019\& data-original=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-aeca7bdabe52c9b6ad83_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='1019'%20height='502'&&\u002Fsvg&\& data-rawwidth=\&1019\& data-rawheight=\&502\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&1019\& data-original=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-aeca7bdabe52c9b6ad83_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-aeca7bdabe52c9b6ad83_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cbr\u003E可以看到,按钮按下前后新增的最大对象即为代码中生成的Byte对象,并且该对象被引用的次数为1。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E那么,如何在游戏运行中看待这种快照之间新增或保留堆栈的现象?\u003C\u002Fp\u003E\u003Cbr\u003E比如说,王者荣耀这类MOBA游戏在副本和游戏大厅之间,会\u003Cstrong\u003E保留\u003C\u002Fstrong\u003E地图和NPC的对象资源,保证下次开始游戏时可以更快的读取和进入游戏;而天天酷跑之类的跑酷游戏在在副本和游戏大厅之间,就\u003Cstrong\u003E不会保留\u003C\u002Fstrong\u003E地图和NPC的对象资源,原因就在于王者荣耀这类的MOBA游戏,\u003Cstrong\u003E地图和NPC的出现的情况是完全相同的\u003C\u002Fstrong\u003E,为了更好的游戏体验,保留对象资源是合适的;而天天酷跑之类的跑酷游戏,有不同的关卡副本,如果保留对象资源,会导致内存不断的被占用,因此选择不保留对象资源。因此我们可以说,\u003Cstrong\u003E内存分配是否合理没有绝对意义上的标准\u003C\u002Fstrong\u003E,都要游戏开发者根据自己的开发策略,结合mono内存检测的报告,判定内存分配的情况是否在自己的计划之中。 \u003Cp\u003E\u003Cstrong\u003E4、通过内存分配总表定位存在问题的函数\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp\u003E重新刷新一下报告,我们最后来看一下游戏\u003Cstrong\u003E整体运行过程\u003C\u002Fstrong\u003E中具体功能的内存分配的情况:\u003C\u002Fp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-ac2dc0b90_b.jpg\& data-rawwidth=\&1089\& data-rawheight=\&517\& class=\&origin_image zh-lightbox-thumb\& width=\&1089\& data-original=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-ac2dc0b90_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='1089'%20height='517'&&\u002Fsvg&\& data-rawwidth=\&1089\& data-rawheight=\&517\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&1089\& data-original=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-ac2dc0b90_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-ac2dc0b90_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cp\u003E图中的”分配堆栈“代表的就是游戏每次调用的一个函数,开发人员需要关注右上角”分配总次数“和”分配总大小“,关注是否有函数频繁分配内存,\u003Cstrong\u003E根据计划中的内存分配和实际的内存分配情况,开发人员应该进行针对性的优化。\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp\u003E测试报告分析到这里,基本可以发现内存管理方面存在的一些分配方面的问题了,但是内存优化的道路,到这里才完成了一半,Unity游戏在运行时的内存占用情况可以用下图表示: \u003C\u002Fp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-b01b08d94e804dd1bd69a03e38e90062_b.jpg\& data-rawwidth=\&347\& data-rawheight=\&250\& class=\&content_image\& width=\&347\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='347'%20height='250'&&\u002Fsvg&\& data-rawwidth=\&347\& data-rawheight=\&250\& class=\&content_image lazy\& width=\&347\& data-actualsrc=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-b01b08d94e804dd1bd69a03e38e90062_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cp\u003EMono内存和native内存是PSS内存主要的组成部分,mono内存更多的起到内存调用的功能,因此常常成为了开发人员优化内存的起点;而native内存中包含了大量对象的资源,也是内存优化中的重要部分,这部分内容在测试报告中也有具体的细分,如下图:\u003C\u002Fp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-b04eb22ba9_b.jpg\& data-rawwidth=\&237\& data-rawheight=\&503\& class=\&content_image\& width=\&237\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='237'%20height='503'&&\u002Fsvg&\& data-rawwidth=\&237\& data-rawheight=\&503\& class=\&content_image lazy\& width=\&237\& data-actualsrc=\&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-b04eb22ba9_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cp\u003E这部分的内存检测,将在后面的干货中继续介绍。\u003C\u002Fp\u003E\u003Cp\u003E针对手游的性能优化,腾讯WeTest平台的\u003Cstrong\u003ECube\u003C\u002Fstrong\u003E工具提供了基本所有相关指标的检测,为手游进行最高效和准确的测试服务,不断改善玩家的体验。\u003Cstrong\u003E目前功能还在免费开放中。点击链接:\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=http%3A\u002F\u002Fwetest.qq.com\u002Fcube\u002F%3Ffrom%3Dcontent_zhihuzhuanlan\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003EUnity性能分析\u003C\u002Fa\u003E立即体验!\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E&,&updated&:new Date(&T11:56:59.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:3,&collapsedCount&:0,&likeCount&:41,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&titleImage&:&https:\u002F\u002Fpic2.zhimg.com\u002Fv2-106e4cefb494b2d15a7c12_r.jpg&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&reviewers&:[],&topics&:[{&url&:&https:\u002F\u002Fwww.zhihu.com\u002Ftopic\u002F&,&id&:&&,&name&:&Unity(游戏引擎)&},{&url&:&https:\u002F\u002Fwww.zhihu.com\u002Ftopic\u002F&,&id&:&&,&name&:&手机游戏&},{&url&:&https:\u002F\u002Fwww.zhihu.com\u002Ftopic\u002F&,&id&:&&,&name&:&性能优化&}],&adminClosedComment&:false,&titleImageSize&:{&width&:900,&height&:500},&href&:&\u002Fapi\u002Fposts\u002F&,&excerptTitle&:&&,&tipjarState&:&inactivated&,&annotationAction&:[],&sourceUrl&:&&,&pageCommentsCount&:3,&hasPublishingDraft&:false,&snapshotUrl&:&&,&publishedTime&:&T19:56:59+08:00&,&url&:&\u002Fp\u002F&,&lastestLikers&:[{&bio&:&不要逃避你看不到的东西。&,&isFollowing&:false,&hash&:&bc4bdf75148dcecfe0a43e2&,&uid&:952100,&isOrg&:false,&slug&:&nanoneki&,&isFollowed&:false,&description&:&&,&name&:&NanoNeki&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fnanoneki&,&avatar&:{&id&:&f32ca2ba2ce1fb138d3567&,&template&:&https:\u002F\u002Fpic3.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},{&bio&:&&,&isFollowing&:false,&hash&:&d0e55bdf7bc2dde99313d95&,&uid&:254500,&isOrg&:false,&slug&:&puluo2void&,&isFollowed&:false,&description&:&Valar Morghulis&,&name&:&Klaus&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fpuluo2void&,&avatar&:{&id&:&9b1b0a7dc6147c07abc060f41926e7ed&,&template&:&https:\u002F\u002Fpic1.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},{&bio&:&学习&,&isFollowing&:false,&hash&:&03b642be919cc1cb5bf14e9ef6a6dd9c&,&uid&:80,&isOrg&:false,&slug&:&jiang-feng-99&,&isFollowed&:false,&description&:&&,&name&:&姜峰&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fjiang-feng-99&,&avatar&:{&id&:&da8e974dc&,&template&:&https:\u002F\u002Fpic4.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},{&bio&:&数据之美&,&isFollowing&:false,&hash&:&8ebbea126b&,&uid&:36,&isOrg&:false,&slug&:&GTSaya&,&isFollowed&:false,&description&:&&,&name&:&ST.T&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002FGTSaya&,&avatar&:{&id&:&v2-e00de1cf5aa04bd94894ca&,&template&:&https:\u002F\u002Fpic4.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},{&bio&:null,&isFollowing&:false,&hash&:&2fd3fe4131ca63cdd84f&,&uid&:140860,&isOrg&:false,&slug&:&zhao-jin-yu-44-40&,&isFollowed&:false,&description&:&&,&name&:&猪蹄果实&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fzhao-jin-yu-44-40&,&avatar&:{&id&:&da8e974dc&,&template&:&https:\u002F\u002Fpic4.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false}],&summary&:&\u003Cimg src=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-22660ddaab30ce5ef5b9_200x112.jpg\& data-rawwidth=\&933\& data-rawheight=\&685\& class=\&origin_image inline-img zh-lightbox-thumb\& data-original=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-22660ddaab30ce5ef5b9_r.jpg\&\u003E针对手游的性能优化,腾讯WeTest平台的Cube工具提供了基本所有相关指标的检测,为手游进行最高效和准确的测试服务,不断改善玩家的体验。目前功能还在免费开放中。点击链接\u003Ca href=\&http:\u002F\u002Fwetest.qq.com\u002Fcube\u002F?from=content_zhihuzhuanlan\& data-editable=\&true\& data-title=\&Unity内核性能分析\& class=\&\&\u003EUnity性能分析\u003C\u002Fa\u003E立即体验! 作者:Oliver,腾讯WeTest团队产品经理。商业转载请联系腾…&,&reviewingCommentsCount&:0,&meta&:{&previous&:null,&next&:null},&annotationDetail&:null,&commentsCount&:3,&likesCount&:41,&FULLINFO&:true}},&User&:{&fan-he-66&:{&isFollowed&:false,&name&:&负荷&,&headline&:&我怎么会忘记你,我怎么能忘记你。&,&avatarUrl&:&https:\u002F\u002Fpic2.zhimg.com\u002F2df3a223e0eacdebef61bc08b4b2baf3_s.jpg&,&isFollowing&:false,&type&:&people&,&slug&:&fan-he-66&,&bio&:&时间是记忆的橡皮&,&hash&:&5bbb702df8af&,&uid&:96,&isOrg&:false,&description&:&我怎么会忘记你,我怎么能忘记你。&,&badge&:{&identity&:null,&bestAnswerer&:null},&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Ffan-he-66&,&avatar&:{&id&:&2df3a223e0eacdebef61bc08b4b2baf3&,&template&:&https:\u002F\u002Fpic2.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false}},&Comment&:{},&favlists&:{}},&me&:{},&global&:{&experimentFeatures&:{&ge3&:&ge3_9&,&ge2&:&ge2_1&,&searchSectionStyle&:&loosen&,&androidPassThroughPush&:&all&,&newMore&:&new&,&nwebQAGrowth&:&experiment&,&showTipInLiveDetailsPage&:&true&,&nwebFeedAd&:&experiment&,&newSign&:&newVersion&,&qawebRelatedReadingsContentControl&:&open&,&marketTabBanner&:&market_tab_banner_show&,&liveStore&:&ls_a2_b2_c1_f2&,&qawebThumbnailAbtest&:&new&,&nwebSearch&:&nweb_search_heifetz&,&searchHybridTabs&:&without-tabs&,&enableVoteDownReasonMenu&:&enable&,&showVideoUploadAttention&:&true&,&isOffice&:&false&,&enableTtsPlay&:&post&,&newQuestionDiversion&:&false&,&wechatShareModal&:&wechat_share_modal_show&,&newLiveFeedMediacard&:&old&,&nwebProxiedFeaturedCommentAd&:&zhihu-web&,&hybridZhmoreVideo&:&no&,&recommendationAbtest&:&new&,&nwebGrowthPeople&:&default&,&qrcodeLogin&:&qrcode&,&isShowUnicomFreeEntry&:&unicom_free_entry_off&,&newMobileColumnAppheader&:&new_header&,&questionRecommendReadingsAbtest&:&similar&,&androidDbCommentWithRepinRecord&:&open&,&androidDbRecommendAction&:&open&,&zcmLighting&:&zcm&,&androidDbFeedHashTagStyle&:&button&,&appStoreRateDialog&:&close&,&default&:&None&,&isNewNotiPanel&:&no&,&androidDbRepinSelection&:&open&,&nwebRelatedAdvert&:&default&,&androidProfilePanel&:&panel_b&,&nwebWriteAnswer&:&experiment&}},&columns&:{&next&:{}},&columnPosts&:{},&columnSettings&:{&colomnAuthor&:[],&uploadAvatarDetails&:&&,&contributeRequests&:[],&contributeRequestsTotalCount&:0,&inviteAuthor&:&&},&postComments&:{},&postReviewComments&:{&comments&:[],&newComments&:[],&hasMore&:true},&favlistsByUser&:{},&favlistRelations&:{},&promotions&:{},&switches&:{&couldSetPoster&:false},&draft&:{&titleImage&:&&,&titleImageSize&:{},&isTitleImageFullScreen&:false,&canTitleImageFullScreen&:false,&title&:&&,&titleImageUploading&:false,&error&:&&,&content&:&&,&draftLoading&:false,&globalLoading&:false,&pendingVideo&:{&resource&:null,&error&:null}},&drafts&:{&draftsList&:[],&next&:{}},&config&:{&userNotBindPhoneTipString&:{}},&recommendPosts&:{&articleRecommendations&:[],&columnRecommendations&:[]},&env&:{&edition&:{&baidu&:false,&yidianzixun&:false,&qqnews&:false},&isAppView&:false,&appViewConfig&:{&content_padding_top&:128,&content_padding_bottom&:56,&content_padding_left&:16,&content_padding_right&:16,&title_font_size&:22,&body_font_size&:16,&is_dark_theme&:false,&can_auto_load_image&:true,&app_info&:&OS=iOS&},&isApp&:false,&userAgent&:{&ua&:&Mozilla\u002F5.0 (compatible, MSIE 11, Windows NT 6.3; Trident\u002F7.0; rv:11.0) like Gecko&,&browser&:{&name&:&IE&,&version&:&11&,&major&:&11&},&engine&:{&version&:&7.0&,&name&:&Trident&},&os&:{&name&:&Windows&,&version&:&8.1&},&device&:{},&cpu&:{}}},&message&:{&newCount&:0},&pushNotification&:{&newCount&:0}}

我要回帖

更多关于 光荣使命手游多大内存 的文章

 

随机推荐