Game Development

Unity GetComponent 위치에 따른 비용 비교 본문

Unity/Performance

Unity GetComponent 위치에 따른 비용 비교

Dev Owen 2021. 7. 1. 01:35

GetComponet 위치에 따른 비용!

해당 실험은 오브젝트 들어가 있는 Componet의 순서에 따라 GetComponet의 속도의 변화를 측정합니다.


테스트 방식

해당 테스트는 천 번 Getcompoent를 호출할 때 까지 드는 시간을 측정합니다.

총 한 오브젝트에 Componet는 10개가 들어있고 이 중에서 특정 Componet를 불러오도록 하겠습니다.

테스트의 차이는 다음과 같습니다. 

1. GetComponet로 접근할 Compoent가 오브젝트 제일 위에 있습니다.

2. GetComponet로 접근할 Compoent가 오브젝트 제일 밑에 있습니다.


시작

아래의 소스코드를 통하여 각각의 상황에서 드는 시간을 비교해보도록 하겠습니다!

private void Awake() 
{
    sw.Start();

    int len = 10000000;
    TestScript testScript;
    for ( int i = 0; i < len; i++ )
    {
        testScript = obj.GetComponent<TestScript>();
    }

    sw.Stop();
    UnityEngine.Debug.Log(sw.ElapsedMilliseconds);    
}

속도 비교

 

스크립트가 위에 있을 경우 스크립트가 제일 밑에 있을 경우
1475 ms 1836 ms

결과

해당 결과를 보고 조금 놀라웠다. 머리속으로는 당연히 생각하고 있었지만 진짜였기 떄문에 재미있는 실험이였다.

시간의 차이는 큰 차이가 보이지 않으니 개발 환경이 편한쪽으로 하는것이 좋을거 같다.

 

Comments