본문 바로가기

유니티/Performance

Unity - GetComponent 위치에 따른 퍼포먼스

GetComponent는 해당 오브젝트가 가지고 있는 Component를 부를 때 사용하는 함수이다.

그럼 혹시 GetComponent로 부를 때 위치에 따른 퍼포먼스가 다를까? 해서 글을 작성해본다.

 

테스트

private void Awake()

{

   sw.start();

   int length = 10000000;

   TestScript testScript;

   for(int i=0; i<length; i++)

   {

      testScript = obj.GetComponent<TestScript>();

   }

 

  sw.stop();

   Debug.Log(sw.ElapsedMilliseconds);

}

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

총 한 오브젝트에 Componet는 10개가 들어있고 이 중에서 특정 Componet를 부름

 

1. GetComponet로 접근할 Compoent가 오브젝트 제일 위 위치

2. GetComponet로 접근할 Compoent가 오브젝트 제일 밑 위치

 

 

결과

스크립트가 위에 있을 경우 : 1475ms

스크립트가 아래 있을 경우 : 1836ms

 

시간의 차이는 천 만번을 호출해도 시간 차이가 많이 없어서 개발 환경이 편한 쪽으로 개발하되 알아두면 좋을 것 같다.

728x90

'유니티 > Performance' 카테고리의 다른 글

유니티 - ref, out, (in + 데미지 최적화)  (0) 2025.04.14
Unity - 자식 클래스 참조 비교  (0) 2025.03.20
Unity - Json 비교  (0) 2025.03.20
유니티 Dictionary 키 찾기 비교  (0) 2025.01.31