【Unity】ストップウォッチで処理時間を計測しよう

DEVELOP, Unity

特定のスコープ内の処理時間を計測する時に使えます。

using UnityEngine;
public class StopWatch : System.IDisposable 
{
    public string text { get; set; }
    private System.Diagnostics.Stopwatch m_StopWatch = new System.Diagnostics.Stopwatch();
    public System.Diagnostics.Stopwatch stopWatch { get { return m_StopWatch; } }
    public StopWatch(string _text)
    {
        text = _text;
        stopWatch.Start ();
    }
    public void Dispose()
    {
        stopWatch.Stop ();
        var elapsed = (float)stopWatch.Elapsed.TotalSeconds;
        Debug.LogFormat("{0} Time:{1}", text, elapsed);
    }
}

使い方

#if UNITY_EDITOR || DEVELOPMENT_BUILD
    using(new StopWatch("計測1:"))
#endif
	{
		// 処理
	}

メモリはusingステートメントで自動解放しているため、Release環境でうっかり解放漏れなんてことは起こりません。

Posted by kazupon