본문 바로가기
개발/Unity

유니티 - 스톱워치로 실행시간 확인하기 (Unity Stopwatch Timer)

by 피로물든딸기 2022. 12. 16.
반응형

Unity 전체 링크

 

유니티의 스톱워치를 이용해 for문과 foreach의 속도를 비교해보자.

 

Stopwatch는 System.Diagnostics을 선언하면 사용할 수 있다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Diagnostics;

public class UnityTimer : MonoBehaviour
{
    Stopwatch watch = new Stopwatch();
    
    void Start()
    {
        watch.Start();
        
        // 실행할 코드 
        
        watch.Stop();
    }
}

 

list에 1 ~ 10을 넣은 후, 1부터 10까지 1000000번 더해보자.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Diagnostics;

public class UnityTimer : MonoBehaviour
{
    Stopwatch watch = new Stopwatch();

    void Start()
    {
        int sum = 0;
        List<int> list = new() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

        watch.Start();

        int count = list.Count;
        for(int n = 0; n < 1000000; n++)
            for (int i = 0; i < count; i++) 
                sum += list[i];

        watch.Stop();
        
        UnityEngine.Debug.Log("for : " + watch.ElapsedMilliseconds + " ms");
        
        /* ------------------------------------------------------------------------ */

        watch.Start();

        for (int n = 0; n < 1000000; n++)
            foreach (int v in list)
                sum += v;

        watch.Stop();

        UnityEngine.Debug.Log("foreach : " + watch.ElapsedMilliseconds + " ms");
    }
}

 

 

위 스크립트를 빈 오브젝트에 추가하고 게임을 실행하면 아래의 결과를 얻을 수 있다.

여러 상황에 따라 다르겠지만 foreach가 더 느리다.

 

참고로 카운팅하는 시간을 0으로 초기화하려면 Reset() 메서드를 사용하면 된다.

watch.Reset();

 

Unity Plus:

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Unity Pro:

 

Unity Pro

The complete solutions for professionals to create and operate.

unity.com

 

Unity 프리미엄 학습:

 

Unity Learn

Advance your Unity skills with live sessions and over 750 hours of on-demand learning content designed for creators at every skill level.

unity.com

반응형

댓글