| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | 
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | 
| 30 | 
													Tags
													
											
												
												- Factory
- desgin
- 2번
- 팩토리
- 길 찾기
- 디자인
- 디자인패턴
- 개발
- C++
- AI
- Design
- 강의
- ML Agent
- GetComponet
- Unity
- 유니티
- 게임
- 성능
- 프로그래밍
- A*
- LeetCode
- 알고리즘
- pattern
- 머신러닝
- Algorithm
- 문제풀이
- 디자인 패턴
- 패턴
- JPS
- 인공지능
													Archives
													
											
												
												- Today
- Total
Game Development
Unity 자식 클래스 참조 성능 비교 본문

자식 클래스 참조 성능 비교
상속받는 클래스 자식을 참조하는 방법 중 GetComponet와 as를 통하여 자식을 참조 할 수 있습니다.
여기서 GetComponet 와 as의 성능을 비교해 보도록 하겠습니다.
테스트
두 방식을 통한 속도의 차이를 알아보는 테스트 입니다. 천 만번 아래의 코드를 실행 했을 경우 서로의 속도를 비교해 보도록 하겠습니다.
GetComponet를 통한 방식
[SerializeField] TestParent test;
int count = 10000000;
private void Awake() {
    TestChild test2;
    sw.Start();
    for ( int i = 0; i < count; i++ )
    {
        test2 = test.GetComponent< TestChild >();        
    }
    sw.Stop();
    UnityEngine.Debug.Log(sw.ElapsedMilliseconds.ToString());
}as 를 통한 방식
[SerializeField] TestParent test;
int count = 10000000;
private void Awake() {
    TestChild test2;
    sw.Start();
    for ( int i = 0; i < count; i++ )
    {
        test2 = test as TestChild;
    }
    sw.Stop();
    UnityEngine.Debug.Log(sw.ElapsedMilliseconds.ToString());
}| GetComponet | as | 
| 1382 ms | 2 ms | 
결과
사실 당연한 결과이다 GetComponet는 오브젝트의 있는 모든 컨퍼넌트를 검사해야 하지만 as는 해당 스크립트만 검사하면 되기에 속도차이가 나는것이 당연하다. 다들 자식 참조하는건 as를 사용합시다.
'Unity > Performance' 카테고리의 다른 글
| C# Generic Enum Type을 효율적으로 Int로 변환시켜보자 (0) | 2022.10.05 | 
|---|---|
| Unity Dictionary ContainsKey 와 TryGetValue 비교 (0) | 2021.07.01 | 
| Unity GetComponent 위치에 따른 비용 비교 (0) | 2021.07.01 | 
| Unity Update 호출할 때, 사용되는 비용! (0) | 2021.06.26 | 
| Unity 반복문 성능 비교 (0) | 2021.06.25 | 
			  Comments
			
		
	
               
           
					
					
					
					
					
					
				 
             
								 
								 
								