강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

ngh님의 프로필 이미지
ngh

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

Rotation

벡터 동적할당에 대해서

작성

·

176

0

안녕하세요 여쭈어볼 게 있습니다!

이동하거나 회전할 때 Vector 를 사용하지 않습니까?

그런데 업데이트 함수에서 매초 마다 new 로 동적할당하는 것은 Heap에 그만큼 엄청난 과부하를 준다고 생각이 듭니다.

c#은 수동적으로 메모리 관리를 할 수 없으니 사용자가

강제로 삭제를 할 경우 오히려 성능에 악영향을 준다고 알고 있습니다. 그래서 그냥 가비지 컬렉터가 삭제를 알아서 하게 내버려 둬야 한다고 그러더군요. 

그래서 굳이 왜 매번 new로 저렇게 해줘도 성능에 아무런 지장이 없을까? 저 방법 말고 임의 고정 값을 스택에 할당하고 그걸 활용하는 것이 성능 향상에 엄청 낫지 않을까?

이렇게 생각이 들기도 합니다.

궁금증을 꼭 풀고 싶습니다 감사합니다!

답변 1

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

C#에서는 new를 한다고 꼭 Heap에 가진 않습니다.
Vector는 struct이기 때문에 복사 타입이고,
문법만 new를 사용하지 실제로는 stack에 올라갑니다.

그와는 별개로, class라 가정하면 멤버 변수나 어딘가에가
1번만 만들고 재사용해도 당연히 괜찮습니다.

ngh님의 프로필 이미지
ngh

작성한 질문수

질문하기