힙 메모리 와 스택 메모리의 차이
스택 메모리는 정적 메모리의 저장공간으로 빠른 접근이 가능하지만 메모리의 크기가 작으며, 주로 값 형식의 데이터가 저장됩니다.
힙 메모리는 동적 메모리의 저장공간으로 참조형식의 데이터를 저장하며, 동적으로 메모리를 할당할 수 있어 메모리의 크기에 자유롭지만 상대적으로 접근 속도가 느립니다.
스택 메모리의 경우 사용이 종료되면 즉시 메모리의 할당이 해제되며, 힙 메모리의 경우 메모리의 할당과 해제를 직접 해주어야합니다.
C# 의 경우 힙 메모리의 할당 해제를 가비지 컬렉터가 관리하여 별도로 해제를 해 줄 필요는 없지만 가비지컬렉터가 작동할 때 성능 저하가 발생하기 때문에 불필요한 객체생성을 줄여서 힙 메모리의 낭비를 줄이는것이 좋습니다.
Find 함수 사용을 자제해야하는 이유
Find 함수를 사용하면 하이라키창에 있는 모든 오브젝트를 검색하여 Find 의 매개변수 string 과 같은 이름의 오브젝트를 찾게 됩니다.
이때 오브젝트가 많을경우 존재하는 모든 오브젝트에 접근하는 과정에서 성능저하가 발생하게 되기 때문에 피해주어야 합니다.
또한 Find 함수는 string 매개변수를 사용하여 오브젝트의 이름으로 대상을 찾기 때문에 대상의 이름이 변경되거나 중복된 이름의 오브젝트가 있을경우 원하는 오브젝트를 찾지 못하는 경우가 발생할 수도 있으며, 개발중 찾아야하는 오브젝트의 이름이 변경된경우 string 값을 찾아서 변경해주어야하기 때문에 유지보수의 어려움이 발생하게됩니다.
따라서 찾아야하는 대상을 미리 캐싱해두거나, Find등으로 찾아야하는 상황에서는 Tag를 활용하여 유지보수를 조금 쉽게 할 수 있도록 해주는것이 좋습니다
'내일배움캠프 > TIL' 카테고리의 다른 글
멀티플레이 테스트용 - ParrelSync (1) | 2024.12.18 |
---|---|
면접 관련 - Update문, float와 int 의 표현 가능한 범위가 다른 이유 (0) | 2024.12.12 |
면접관련 - 객체지향 프로그래밍과 유니티 생명주기 (0) | 2024.12.06 |
Netcode - NetworkObject, NetworkBehaviour (0) | 2024.12.03 |
특강 - 그래픽스와 셰이더 (0) | 2024.11.27 |