본문 바로가기
Unity/내용 정리&Tip

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

by 테크앤아트 2024. 4. 18.
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
반응형