一、Unity中獲取某個方法執(zhí)行的時間
Unity中獲取某個方法執(zhí)行的時間
我想在一幀內(nèi)獲取某個方法的總執(zhí)行時間。開始想用Time.time減去之前保存的時間。但是發(fā)現(xiàn)在一幀內(nèi)永遠(yuǎn)返回的是0,多幀的話可以,看來Time.time只會在每一幀賦值更新一次,所以一幀內(nèi)的就取不到了。
然后查了一下c#有一個Stopwatch的類可以幫我們記錄時間,使用起來也挺便利的。
using UnityEngine;
using System.Collections;
using System.Diagnostics;
public class NewBehaviourScript : MonoBehaviour {
void Start () {
float t = Time.time;
TestMethod();
UnityEngine.Debug.Log(string.Format("total: {0} ms",Time.time - t));
Stopwatch sw = new Stopwatch();
sw.Start();
TestMethod();
sw.Stop();
UnityEngine.Debug.Log(string.Format("total: {0} ms",sw.ElapsedMilliseconds));
Profiler.BeginSample("TestMethod");
TestMethod();
Profiler.EndSample();
}
void TestMethod()
{
for(int i =0; i < 10000000; i++)
{
}
}
}
Stopwatch就可以正確的取到上一個方法所消耗的時間。如果想同時測試多個方法,可以多次調(diào)用 sw.Reset(); 然后sw.Stop取ElapsedMilliseconds毫秒數(shù)即可。
當(dāng)然也可以用 Profiler.BeginSample 和 Profiler.EndSample 但是就是要打開Profiler界面找到那一幀就可以看了。
教程名稱:Unity中獲取某個方法執(zhí)行的時間 | 語 言:中文 | 頁數(shù)/時長: 2頁 |
軟件版本: Unity | 上傳時間:2017/05/22 | 價格:¥0 |
文件格式: .rtf | 文件大?。?24kb |
您還未登錄
全部評論: 0條