获取某个方法执行的时间
参考自:http://www.manew.com/thread-89410-1-1.html
http://www.cnblogs.com/zhw511006/archive/2009/07/22/1528405.html
问:现需要获取下面这个方法执行的时间:
void TestMethod()
{
for(int i =0; i < 10000000; i++)
{
}
}
1.C#的Stopwatch类
简介:
–使用 IsRunning 可以确定 Stopwatch 的当前状态在运行,或者已停止;
–通过属性 Elapsed、ElapsedMilliseconds 或 ElapsedTicks 查询运行时间值;
–Stopwatch 在基础计时器机制中对计时器的刻度进行计数,从而测量运行时间。
如果安装的硬件和操作系统支持高分辨率性能的计数器,则 Stopwatch 类将使用该计数器来测量运行时间;否则,Stopwatch 类将使用系统计数器来测量运行时间。
使用 Frequency 和 IsHighResolution 字段可以确定实现 Stopwatch 计时的精度和分辨率。
需要:using System.Diagnostics;
1/ 测试一个方法:
Stopwatch sw = new Stopwatch();
sw.Start(); //开启计时器
TestMethod();
sw.Stop(); //停止计时器
UnityEngine.Debug.Log(string.Format("total: {0} ms",sw.ElapsedMilliseconds)); //打印计时器 毫秒数39ms
2/ 测试多个方法:
Stopwatch sw = new Stopwatch();
sw.Start(); //开启计时器
TestMethod();
sw.Stop(); //停止计时器
UnityEngine.Debug.Log(string.Format("total: {0} ms",sw.ElapsedMilliseconds)); //打印计时器 毫秒数39ms
sw.Reset(); //重置计时器
sw.Start(); //开启计时器
TestMethod();
sw.Stop(); //停止计时器
UnityEngine.Debug.Log(string.Format("total: {0} ms",sw.ElapsedMilliseconds)); //打印计时器 毫秒数38ms
2.Unity的Profiler:
Profiler.BeginSample("=========TestMethod================");
TestMethod();
Profiler.EndSample();
然后Ctrl+7打开Profiler界面,找到那一帧: