遇到项目卡顿,为了定位问题,所以我们需要检测一些方法执行的耗时,整理了几个方法
测试方法
void TestMethod()
{
for(int i =0; i < 10000000; i++)
{
}
}
1、Time.time这个方法一帧只会赋值一次,所以一下方式取到的永远是0,所以该方法可以忽略
float t = Time.time;
TestMethod();
UnityEngine.Debug.Log(string.Format("Time total: {0} ms",Time.time - t));
2、Stopwatch就可以正确的取到上一个方法所消耗的时间。
如果想同时测试多个方法,可以多次调用 sw.Reset();
然后sw.Stop取ElapsedMilliseconds毫秒数即可。
Stopwatch sw = new Stopwatch();
sw.Start();
TestMethod();
sw.Stop();
UnityEngine.Debug.Log(string.Format("Stopwatch total: {0} ms",sw.ElapsedMilliseconds));
3、通过Profiler界面分析