### **병렬 컨테이너 빌드 (Parallel Container Build)**
VContainer는 기본적으로 컨테이너 빌드 작업을 단일 스레드에서 순차적으로 수행합니다. 하지만 등록해야 할 객체의 수가 매우 많거나, 각 등록 작업 자체가 복잡한 경우 빌드 시간이 길어질 수 있습니다. 이럴 때 `VCONTAINER_PARALLEL_CONTAINER_BUILD` 컴파일 플래그를 활성화하면, VContainer는 컨테이너 빌드 프로세스를 병렬로 실행하여 성능을 개선할 수 있습니다.
**활성화 방법:**
- **컴파일 플래그(Compilation Flag) 설정:** Unity 프로젝트의 플레이어 설정(`Project Settings` -> `Player` -> `Other Settings` -> `Scripting Define Symbols`)에서 `VCONTAINER_PARALLEL_CONTAINER_BUILD` 심볼을 추가합니다.
**작동 원리 및 고려사항:**
- **다중 스레드 활용:** 이 플래그가 활성화되면, VContainer는 컨테이너에 등록된 의존성들을 처리하는 과정을 여러 CPU 코어에서 병렬로 분산하여 처리합니다.
- **성능 이점:**
- **대규모 DI 그래프:** 등록해야 할 객체의 수가 수백 또는 수천 개에 달하는 대규모 애플리케이션에서 특히 효과적입니다. 이러한 경우, 병렬 처리가 순차 처리보다 훨씬 빠르게 작업을 완료할 수 있습니다.
- **성능 저하 가능성:**
- **적은 수의 등록:** 등록할 객체가 적은 경우에는 병렬 처리의 오버헤드(스레드 생성 및 관리, 동기화 등)가 실제 작업 시간보다 커져 오히려 전체 빌드 시간이 더 느려질 수 있습니다.
- **예상보다 느릴 수 있음:** 병렬 처리가 항상 빠르다는 보장은 없습니다. 실제 애플리케이션의 등록 패턴, CPU 코어 수, 기타 런타임 환경에 따라 성능 향상이 미미하거나 오히려 저하될 수도 있습니다. 따라서 적용 후에는 반드시 성능 프로파일링을 통해 효과를 검증해야 합니다.
### 요약
VContainer의 병렬 컨테이너 빌드 기능에 대해 설명하며, `VCONTAINER_PARALLEL_CONTAINER_BUILD` 컴파일 플래그를 통해 활성화할 수 있음을 알려줍니다. 이 기능은 등록할 객체가 매우 많은 대규모 프로젝트에서 컨테이너 빌드 시간을 단축하는 데 유용할 수 있지만, 오버헤드 때문에 등록 객체가 적은 경우에는 오히려 성능이 저하될 수 있으므로 사용에 신중을 기하고 충분한 테스트를 거쳐야 합니다.
---
이전 : [[8.2 Async Container Build]] | 다음 : [[8.4 Pre IL Code Generation (Deprecated)]]