[Unity&C#]获取某个方法执行的时间

获取某个方法执行的时间

参考自: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界面,找到那一帧:

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值