Add Zhihu: 如何正确高效的查找游戏「卡顿」原因? - 知乎
This commit is contained in:
@@ -2,10 +2,57 @@
|
||||
title: "如何正确高效的查找游戏「卡顿」原因? - 知乎"
|
||||
source: "知乎"
|
||||
url: "https://www.zhihu.com/question/28824284/answer/1965456096262096583"
|
||||
date: 2026-06-10 22:46
|
||||
date: 2026-06-10 22:49
|
||||
tags: [zhihu, saved]
|
||||
---
|
||||
|
||||
关注
|
||||
推荐
|
||||
热榜
|
||||
专栏
|
||||
圈子
|
||||
New
|
||||
付费咨询
|
||||
故事
|
||||
|
||||
直答
|
||||
切换模式
|
||||
登录/注册
|
||||
如何正确高效的查找游戏「卡顿」原因?
|
||||
关注问题
|
||||
|
||||
写回答
|
||||
登录/注册
|
||||
游戏
|
||||
程序员
|
||||
编程
|
||||
Unity(游戏引擎)
|
||||
如何正确高效的查找游戏「卡顿」原因?
|
||||
背景:我在一家创业公司,我们开发了一些独立的小游戏。最近在做的一款小游戏,使用了 Unity 引擎,在研发快要完成时,我们忽然发现:游戏偶尔会卡一下,…显示全部
|
||||
关注者
|
||||
206
|
||||
被浏览
|
||||
37,144
|
||||
关注问题
|
||||
写回答
|
||||
|
||||
邀请回答
|
||||
|
||||
好问题 1
|
||||
|
||||
1 条评论
|
||||
|
||||
分享
|
||||
|
||||
登录后你可以
|
||||
不限量看优质回答私信答主深度交流精彩内容一键收藏
|
||||
登录
|
||||
查看全部 12 个回答
|
||||
知秋
|
||||
游戏性能优化
|
||||
|
||||
关注
|
||||
|
||||
专栏文章汇总,持续更新:
|
||||
|
||||
高通 Adreno GPU 最佳实践 0--汇总 - 知乎
|
||||
@@ -114,3 +161,182 @@ tags: [zhihu, saved]
|
||||
尽管许多应用的目标是“尽可能达到显示硬件的最大刷新速度”,但即便应用受垂直同步限制,仍存在优化空间,且优化收益不仅限于提升帧率。
|
||||
|
||||
移动应用的多数性能问题最终都与“功耗/电池续航”相关。即便应用通过“受垂直同步限制”(而非受CPU或GPU限制)达到了目标帧率,仍建议优化代码:若能通过修改代码降低功耗、减少设备发热,应用可在“完成更少工作”的同时维持目标帧率,还可能在低端设备上实现更优性能。
|
||||
|
||||
|
||||
|
||||
|
||||
阅读全文
|
||||
|
||||
赞同 72
|
||||
|
||||
添加评论
|
||||
|
||||
314
|
||||
|
||||
7
|
||||
|
||||
分享
|
||||
豆包让小白也能玩转 AI 漫画图片生成
|
||||
豆包让小白也能玩转 AI 漫画图片生成
|
||||
查看详情
|
||||
豆包
|
||||
的广告
|
||||
更多回答
|
||||
王耀威
|
||||
投资合作做游戏找我
|
||||
|
||||
关注
|
||||
|
||||
首先打开profiler,查看所有凸起的线
|
||||
|
||||
一般游戏内卡顿的地方
|
||||
|
||||
游戏战斗过程中在加载资源文件
|
||||
NGUI中图集太乱导致drawcall彪涨
|
||||
|
||||
NGUI中active/unactive导致重建drawcall生成大量的资源
|
||||
频繁创建对象删除对象,没有缓存。
|
||||
unity自身的一些bug,有时候可以看到物理引擎计算的量很大。
|
||||
使用了更精确但更耗时的判断如meshcollider
|
||||
所有逻辑都使用unity主线程处理
|
||||
使用过多复杂的渲染,如一些实时GI或摄像机渲染效果加强
|
||||
string串接foreach,getcomponet等问题
|
||||
|
||||
解决方法
|
||||
|
||||
在游戏战斗开始时前加载所有用到的资源,不要在战斗过程加载资源,因为unity是单线程的模式,如果没有使用异步线程做加载或一开始进入场景时加载,这个问题就很突出了。
|
||||
|
||||
NGUI为了减少GPU状态切换的消耗(比如切换material),把相同material的UIWidget合并,减少Draw Call的数量。这一步是基于UIPanel做的,合并UIWidget的代码可自行查看UIPanel.cs的FillAllDrawCalls()函数,原理如下图,尽量分好层次如背景框,按钮等。
|
||||
NGUI中,active/unactive会删除重建材质drawcall,如果界面内容稍多一些,会导致内存分配,甚至出现drawcall的死循环,目前比较正确的做法是,设置在屏幕坐标外部,然后关闭所有NGUI脚本的运行,NGUI作者的回复截图。
|
||||
|
||||
|
||||
使用对象池缓存一部分频繁使用的资源,不必每次都创建卸载。
|
||||
更新新版本,设置好物理引擎参数。
|
||||
如果没有必要的话,尽量使用速度较快的碰撞检测,入boxcollider。
|
||||
应该合理分离主线程与逻辑线程的关系,比如一些算法采用异步执行的方式,网络数据的解析,加载等,使用代理来把必要的逻辑切换到主线程,不必要的逻辑使用逻辑线程,可以通过一个MonoBehaviour的update来执行代理逻辑
|
||||
有些手机根本无法运行复杂的渲染,能简单尽量简单。
|
||||
字符串串接使用stringbuilder不使用+,频繁foreach最好用for代替,缓存已经取到的componet.
|
||||
阅读全文
|
||||
|
||||
赞同 30
|
||||
|
||||
6 条评论
|
||||
|
||||
59
|
||||
|
||||
11
|
||||
|
||||
分享
|
||||
知乎用户
|
||||
|
||||
分享一点我们自己在做性能优化时的小经验:
|
||||
|
||||
在Unity Editor模式下运行,有部分Overhead是由运行时的场景编辑器导致的,采样的时候可以先把“Scene”关掉。
|
||||
|
||||
用Profiler采样时,首先重点关注CPU占用率高的方法,并且优先打击
|
||||
|
||||
关注内存分配“GC Alloc”,每帧超过100B的内存分配都需要解决,否则这样的的内存分配累积后就会引起GC,很容易引起卡顿
|
||||
|
||||
发布于2015-03-18 11:59
|
||||
|
||||
赞同 11
|
||||
|
||||
9 条评论
|
||||
|
||||
19
|
||||
|
||||
3
|
||||
|
||||
分享
|
||||
|
||||
查看全部 12 个回答
|
||||
下载知乎客户端
|
||||
与世界分享知识、经验和见解
|
||||
广告
|
||||
关于作者
|
||||
知秋
|
||||
游戏性能优化
|
||||
回答
|
||||
21
|
||||
文章
|
||||
33
|
||||
关注者
|
||||
243
|
||||
|
||||
关注他
|
||||
|
||||
发私信
|
||||
大家都在搜
|
||||
换一换
|
||||
清北鹅腿阿姨被曝卖鸭腿
|
||||
419 万
|
||||
热
|
||||
2026 高考数学
|
||||
350 万
|
||||
热
|
||||
我国灵活就业人数超 3 亿
|
||||
345 万
|
||||
热
|
||||
黄仁勋自嘲亚洲家庭关系
|
||||
343 万
|
||||
热
|
||||
香港火灾落案起诉七人及两家公司
|
||||
336 万
|
||||
新
|
||||
重回高考那年还能做对几道
|
||||
329 万
|
||||
热
|
||||
膳魔师致 3 人失明
|
||||
315 万
|
||||
热
|
||||
钉钉副总裁发表长文《置身钉外》
|
||||
315 万
|
||||
热
|
||||
运城多人被臭味熏醒
|
||||
299 万
|
||||
热
|
||||
张桂梅第16次送考
|
||||
294 万
|
||||
广告
|
||||
|
||||
帮助中心
|
||||
服务热线:400-919-0001
|
||||
帮助与客服
|
||||
联系我们
|
||||
更多
|
||||
|
||||
举报中心
|
||||
违法和不良信息举报:010-82716601
|
||||
我的举报
|
||||
更多
|
||||
|
||||
关于知乎
|
||||
知乎个人信息保护指引
|
||||
知乎协议
|
||||
下载知乎
|
||||
Investor Relations
|
||||
网站资质信息
|
||||
更多
|
||||
京ICP证110745号 · 京ICP备13052560号-1 · 京公网安备 11010802020088 号 · 京网文[2025]0422-132 号 · 药品医疗器械网络信息服务备案(京)网药械信息备字(2022)第00334号
|
||||
登录知乎,问答干货一键收藏
|
||||
打开知乎App
|
||||
在「我的页」右上角打开扫一扫
|
||||
其他扫码方式:微信
|
||||
下载知乎App
|
||||
无障碍模式
|
||||
验证码登录密码登录
|
||||
开通机构号
|
||||
中国 +86
|
||||
|
||||
获取短信验证码
|
||||
获取语音验证码
|
||||
登录/注册
|
||||
其他方式登录
|
||||
未注册手机验证后自动登录,注册即代表同意《知乎协议》《隐私保护指引》
|
||||
|
||||
扫码下载知乎 App
|
||||
|
||||
关闭二维码
|
||||
登录即可查看 超5亿 专业优质内容
|
||||
超 5 千万创作者的优质提问、专业回答、深度文章和精彩视频尽在知乎。
|
||||
立即登录/注册
|
||||
|
||||
Reference in New Issue
Block a user