gc_target_frame_time 함수 설명
gc_target_frame_time
함수는 가비지 컬렉터가 각 프레임을 실행하는 데 소요되는 시간을 지정할 수 있도록 해줍니다. 이 함수는 마이크로초 단위로 시간을 입력받으며, 기본 목표 프레임 시간은 100 마이크로초입니다.
주요 사항
- 목표 값: 이 값은 단순한 목표일 뿐이며, 일부 작업은 여전히 한 프레임 내에서 완전히 실행되어야 하므로 목표 시간보다 더 오래 걸릴 수 있습니다.
- 메모리 사용 변화에 대한 반응성: 목표 시간을 늘리면 가비지 컬렉터가 메모리 사용의 급격한 변화에 더 잘 반응하고 메모리를 더 빨리 해제할 수 있습니다. 그러나 대부분의 경우 이러한 설정이 필요하지 않을 것입니다.
- 0으로 설정: 목표 프레임 시간을 0으로 설정해도 가비지 컬렉터가 완전히 중지되지는 않으며, 매 프레임마다 최소한의 작업은 수행됩니다. 가비지 컬렉터를 완전히 비활성화하려면
gc_enable()
함수를 사용해야 합니다.
문법
gc_target_frame_time(time);
인자 설명
인자 | 타입 | 설명 |
---|---|---|
time | Real | 가비지 컬렉터가 각 프레임에서 작업해야 하는 목표 시간 (마이크로초 단위) |
반환 값
- N/A
예제
if (gc_get_target_frame_time() != 50) {
gc_target_frame_time(50);
}
위 코드는 현재 가비지 컬렉터의 프레임 시간 목표를 확인하고, 만약 50 마이크로초가 아닐 경우 이 값을 설정합니다.
활용 예제
- 프레임 시간 조정: 게임의 성능을 최적화하기 위해 가비지 컬렉터의 프레임 시간을 조정할 수 있습니다.
gml gc_target_frame_time(30); // 프레임 시간을 30 마이크로초로 설정
- 메모리 관리: 메모리 사용량이 급격히 증가할 때 가비지 컬렉터의 반응성을 높이기 위해 목표 시간을 늘릴 수 있습니다.
gml gc_target_frame_time(200); // 프레임 시간을 200 마이크로초로 설정
- 가비지 컬렉터 비활성화: 특정 상황에서 가비지 컬렉터를 비활성화하고 싶을 때 사용할 수 있습니다.
gml gc_enable(false); // 가비지 컬렉터 비활성화
- 프레임 시간 확인: 현재 설정된 프레임 시간을 확인하여 필요에 따라 조정할 수 있습니다.
gml var current_time = gc_get_target_frame_time(); // 현재 프레임 시간 가져오기
- 게임 성능 모니터링: 게임의 성능을 모니터링하고, 필요에 따라 가비지 컬렉터의 프레임 시간을 동적으로 조정할 수 있습니다.
gml if (performance_issue_detected) { gc_target_frame_time(100); // 성능 문제 발생 시 프레임 시간 증가 }