Unity3D学习笔记(4)——获取单帧中函数耗时
来源:互联网 发布:mac磁盘不能分区 编辑:程序博客网 时间:2024/06/11 07:12
Unity3D学习笔记(4)
参考链接1
参考链接2
CheckFunctionTimeInSingleFrame.cs
namespace Assets.Scripts{ using UnityEngine; public class CheckFunctionTimeInSingleFrame : MonoBehaviour { // Use this for initialization void Start () { float t = Time.time; TestTimeFunction(); UnityEngine.Debug.Log(string.Format("Function CostTime:{0} ms", Time.time - t));//得到结果为0,因为Time.time每帧重新赋值之后才会更新一次 System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); sw.Start(); //开始测量 TestTimeFunction(); sw.Stop(); UnityEngine.Debug.Log(string.Format("Function CostTime:{0} ms", sw.ElapsedMilliseconds)); //打印测量的时间 单位:毫秒 } void Update() { //定位性能热点 这样就能在Profiler界面查看到函数的性能消耗——在Update中消耗较为直观,能在Profiler界面查看动态消耗变化 UnityEngine.Profiling.Profiler.BeginSample("TestTimeFunction"); TestTimeFunction(); UnityEngine.Profiling.Profiler.EndSample(); } private void TestTimeFunction() { for (int i = 0; i < 666666; ++i) { //do sometihing } } }}
注:
- 在插入性能采样代码时,特别留意函数中是否存在多个return的现象 。这些return如果没有处理好,就有可能导致性能采样的Begin和End不匹配,导致Profiler显示的结果有误。
- 对于协程函数,BeginSample、EndSample之间注意不能存在yeild return null ,否则可能导致Unity客户端卡死、手机卡死等现象。个人分析:Begin和End配对分析的是单帧结果,出现yeild return null代表该区间将会分两帧甚至多帧完成。
0 0
- Unity3D学习笔记(4)——获取单帧中函数耗时
- 学习笔记——Unity3D
- Unity3d 5.x 学习笔记(4)—— Awake 与 Start 函数的区别于应用
- 【Unity3d】学习笔记(4)
- UNITY3D学习笔记4
- Unity3D 学习笔记7 —— 获取热更新资源文件的MD5码
- Unity3D学习笔记——Unity3D的窗口布局
- Unity3D 学习笔记4 —— UGUI+uLua游戏框架
- 【Unity3d】学习笔记(11)——处理CSV文件
- Unity3D 学习笔记1——序言(简称“废话”)
- Unity3D学习笔记(6)—— 飞碟射击游戏
- Unity3D学习笔记(7)—— 击球游戏
- Unity3D学习笔记(9)—— 粒子光环
- Unity3D入门(rolling ball)——学习笔记
- Unity3D学习笔记(10)—— 游戏序列化
- Unity3D学习笔记——组件之Mesh(网格)
- Unity3D学习笔记(1)——换行编码警告
- Unity3D学习笔记——layer
- 【NOI2011】bzoj2434 阿狸的打字机
- request与response
- 为什么Chrome比其他浏览器快?
- Android Theme.AppCompat 中,你应该熟悉的颜色属性
- QtChart编译经过
- Unity3D学习笔记(4)——获取单帧中函数耗时
- CCF NOI1018 打电话
- Java synchronized详解
- Text Reverse
- Angular2 依赖注入之装饰器
- 法兴用数字证明中国期货市场是真正的投机市
- 贝叶斯统计(Bayesian statistics) vs 频率统计(Frequentist statistics):marginal likelihood(边缘似然)
- EffectiveJava-大纲
- 将二叉树拆成链表