gc_collect 함수 설명 및 활용 예제
gc_collect 함수란?
gc_collect
함수는 가비지 컬렉터를 강제로 실행하여 현재 프레임(스텝)의 끝에서 메모리에서 수집할 객체를 제거합니다. 이 함수는 가비지 컬렉터가 활성화되어 있지 않아도 작동합니다. 즉, gc_enable()
함수를 사용하여 가비지 컬렉터를 비활성화한 후 이 함수를 호출하면, 가비지 컬렉터가 한 프레임 동안 활성화되어 수집할 객체가 메모리에서 제거됩니다. 이후 다시 가비지 컬렉터는 비활성화됩니다.
문법
gc_collect();
반환값
이 함수는 반환값이 없습니다.
예제
아래 코드는 전역 변수를 확인하고 특정 키가 눌렸는지를 체크하여, 두 조건이 모두 참일 경우 가비지 컬렉션을 트리거합니다.
if (global.debug == true && keyboard_check_pressed(vk_f1)) {
gc_collect();
}
활용 예제
1. 게임에서 메모리 관리
게임 개발 시, 메모리 누수를 방지하기 위해 특정 이벤트가 발생할 때마다 가비지 컬렉션을 호출할 수 있습니다.
if (instance_exists(enemy)) {
gc_collect();
}
2. 디버깅 모드에서 메모리 확인
디버깅 모드에서 메모리 사용량을 줄이기 위해 특정 키 입력 시 가비지 컬렉션을 실행할 수 있습니다.
if (global.debug_mode && keyboard_check_pressed(vk_f2)) {
gc_collect();
}
3. 레벨 종료 시 메모리 정리
레벨이 종료될 때 모든 객체를 정리하여 메모리를 확보할 수 있습니다.
if (level_finished) {
gc_collect();
}
4. 특정 조건에서 메모리 정리
특정 조건이 충족되었을 때 가비지 컬렉션을 실행하여 메모리 사용량을 최적화할 수 있습니다.
if (memory_usage_high) {
gc_collect();
}
요약
gc_collect
함수는 메모리 관리를 위한 유용한 도구로, 게임 개발 및 다양한 애플리케이션에서 메모리 누수를 방지하고 최적화를 위해 활용될 수 있습니다.