[Unity] 그래픽스 최적화 - Graphics Jobs, Use incremental GC 기능

2024. 4. 18. 12:00Unity

728x90
반응형

Graphics Jobs

This enables rendering code to be split and run in parallel on multiple cores on multi core machines. This is stored as a platform specific property and acts upon the currently active build target.

 

워크로드를 보다 효과적으로 균등하게 분산하고 최신 하드웨어를 보다 효율적으로 활용하여 잠재적으로 보다 원활한 프레임 속도와 전반적인 성능을 향상시킬 수 있습니다.

 

Graphics Jobs를 활성화하면 Unity는 Windows의 DirectX 12와 macOS 및 iOS의 Metal과 같은 최신 그래픽 API를 활용하여 여러 명령을 병렬로 실행할 수 있습니다. 이 병렬 실행은 특히 그래픽이 복잡하고 드로우콜이 많은 장면에서 그래픽 파이프라인에 과부하가 걸려 발생하는 병목 현상을 줄일 수 있습니다.

 

유용한 사용

- 하이엔드 장치: 강력한 멀티 코어 프로세서와 고급 GPU를 갖춘 장치에서 특히 효과적입니다. 그들은 이러한 구성 요소의 병렬 처리 기능을 더 잘 활용할 수 있습니다.
- 복잡한 장면: 렌더링 작업이 복잡하고 GPU의 병목 현상이 발생하는 프로젝트의 경우 그래픽 작업을 활성화하면 성능을 최적화하는 데 도움이 될 수 있습니다.

 

고려할 점

- 호환성 및 안정성: 그래픽 작업은 성능 이점을 제공할 수 있지만 하드웨어, 특정 드라이버 및 사용된 그래픽 API에 따라 안정성 문제가 발생할 수도 있습니다. 이 기능을 사용하도록 설정하는 것이 충돌이나 그래픽 결함을 유발하지 않도록 모든 대상 플랫폼에서 게임을 철저히 테스트하는 것이 중요합니다.
- 그래픽 API: 그래픽 작업은 DirectX 12 및 Metal과 같은 멀티스레딩 및 명령어 목록을 본질적으로 지원하는 특정 그래픽 API에서만 지원됩니다. DirectX 11 또는 OpenGL과 같은 이전 API에서는 사용할 수 없습니다.

 

 


Use incremental GC

 

기존 Garbage Collection 프로세스는 메모리를 회수하기 위해 다른 프로세스를 중지해야 하기 때문에 특정 프레임에서 스파이크가 발생할 수 있습니다. 메모리가 사용되지 않거나 참조되지 않은 물체를 한 번에 확인하고 정리해야 하기 때문입니다.

이러한 성능 급증을 완화하기 위해 프로세스를 한 번에 수행하는 대신, 이 프로세스를 여러 프레임에 걸쳐 확산시킵니다. 이는 단일 프레임에서 수행하는 것보다 적게 작동하여 프레임 속도가 눈에 띄게 떨어질 가능성을 줄입니다.

 

사용의 이점

- 지연 감소: 가비지 컬렉션 워크로드를 여러 프레임에 걸쳐 더 작은 청크로 나누면 단일 프레임 동안 프레임 속도에 미치는 영향이 줄어듭니다.
- 더 부드러운 성능: 일관된 프레임 속도가 중요한 실시간 게임에서 특히 더 부드러운 게임 플레이 경험으로 이어질 수 있습니다.

 

고려할 점

- 길어지는 GC를 완료시간: 개별 프레임에 미치는 영향을 줄이는 반면, 총 시간은 더 길어질 수 있습니다.
- 모든 프로젝트에 적합하지 않음: 프로젝트의 특성과 메모리 관리 방법에 따라 이점이 제공되지 않을 수 있으며 경우에 따라 CPU 워크로드가 약간 증가할 수 있습니다.

 

728x90
반응형