버그 해결을 위한 모든 질문을 던져
0 votes
166 views
현재 작업중인 게임에서 리팩토링 진행을 맡고있습니다. 그중에 전에 string값을 미리 캐싱하지 않고 계속 "Icon" 이런식으로 쓰면 GC가 쌓인다는 말을 들었는데 미리 캐싱해서 쓰는게 좀더 나은 방법인가요? Ex1번은 현재 코드 방식이고 Ex2번으로 바뀌엇을때 좀더 나아지는지 궁금합니다

EX) 1

obj.transform.Find("icon");

obj2.transform.Find("icon");

obj3.transform.Find("icon");

 

EX) 2

string sIcon = "icon";

obj.transform.Find(sIcon );

obj2.transform.Find(sIcon );

obj3.transform.Find(sIcon );
asked (8 point) , 166 views

1 답변

0 votes
음.. 일단 ex1같이 쓰면 "icon"이 상수로 잡혀서 GC와는 상관없습니다.

ex2같이 써도 아마 컴파일러 최적화단에서 "icon"이 상수로 들어갈것같은데 확인해봐야겠지만 될것같네요.

컴파일타임 상수에 대해 GC를 물어보시는걸 보면 GC에 대한 최적화는 아직은 시기상조일지도 모릅니다.
혹시 중견 게임회사에서 일반 유저들 대상으로 마케팅과 함께 서비스 할 계획의 게임개발을 하고 계시지 않으신다면 일단 완성을 목표로 하시고, 최적화는 별도로 공부하시면서 조금씩 적용하시는게 어떨까요?

C#이시지만 string관련된 내용은 Effective C++시리즈에 잘 나와있습니다. 개인적으로 꼭 읽어보라고 권하고 싶고요

C#쪽도 Effective가 있습니다. 한국건 너무 옛날 내용이니까 영어가 가능하시다면 최신판을 권해드립니다.

괜한 오지랖이었을지도 모르겠지만 도움이 되셨으면 좋겠네요.
언제나 좋은 하루 되시고 건승하시길 빕니다!
answered (330 point)
Effective C#은 비추입니다 ㄷㄷㄷ 차라리 자바나 c++책으로
답변 감사합니다.

버그 해결을 위해 도움을 구하고, 도움을 주세요. 우리는 그렇게 발전합니다.

throw bug 는 프로그래밍에 대한 전분야를 다룹니다. 질문,논의거리,팁,정보공유 모든 것이 가능합니다. 프로그래밍과 관련이 없는 내용은 환영받지 못합니다.

507 질문
656 answers
643 댓글
118,128 users