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 |