로딩 화면에서 가비지 콜렉터를 호출해야합니까?


9

그래서 저는 최근에 호기심으로 가비지 수집에 대해 조금 읽었으며 꽤 자주 반복되는 것이 있습니다. 가비지 수집은 컬렉션의 "깊이"에 따라 프로그램이 갑자기 느려질 수 있습니다.

그러나 비디오 게임에서는 사용자가 로딩 시간과 같이 약간의 시차를 느끼지 못하는 순간이 있습니다. 따라서로드 단계 (Collage ()를 통해) 동안 전체 가비지 수집을 진행하는 것이 유용 할 수 있다고 생각했습니다 .2 초 이상 기다려야 실제로 사용자에게 영향을 미치지 않아야합니다.

내 질문은, 정말 유용합니까, 아니면이 작업을 수행하는 데 실질적인 이점이 있습니까?


내 게임의 디버그 프로세스의 일부로, 언제든지 가비지 콜렉터를 호출하는 옵션을 사용자에게 제공했습니다. 이것이 어떻게 진행되는지에 따라 게임의 최종 빌드에도 존재할 수 있습니다. 화면을로드하는 동안 일반적으로 사용자를 시각적으로 방해하지 않는 다른 시간에 호출하는 것이 좋습니다. 게임에 검은 화면으로 이동하는 데스 애니메이션이있는 경우 가비지 수집기를 호출 할 수있는 완벽한 기회입니다.
Krythic

답변:


13

예,로드 할 때 마지막으로 수행하십시오.

이는 GC로 인한 레벨 시작과 첫 번째 지연 사이의 시간을 최대화합니다.

또한 일반적으로 할당을 최소화하려고 노력해야하므로 레벨 동안 더 이상 지연이 발생하지 않습니다.

참조 360 WP7에 대한 빈약 한 성능쓰레기 수집기 열반 트윈 경로


1
또한 호출해야 할 유일한 시간입니다. 특히 컴팩트 프레임 워크 (XBox, WinPhone)에서 특히 그렇습니다.
Jonathan Dickinson

1
@JonathanDickinson : 물론입니다. 그것은 단지 정말 사용자가 (어쩌면 너무 절약, 일반적으로로드) 일시 중지를 기대하는 곳이라고되어야한다 확실히 하지 루프 / 일반 이벤트의 일환으로.
George Duckett
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.