Files
2nd/Graphics & Performance/Batching.md
T

3.6 KiB

id, category, confidence_score, tags, last_reinforced, github_commit
id category confidence_score tags last_reinforced github_commit
P-REINFORCE-AUTO-723577 10_Wiki/💡 Topics/Graphics & Performance 0.90
auto-reinforced
2026-04-20 [P-Reinforce] Continuous Worker - Batching

Batching

📌 한 줄 통찰 (The Karpathy Summary)

Batching(배칭)은 렌더링 성능을 최적화하기 위해 여러 개의 렌더링 객체나 처리 명령을 하나의 그룹으로 묶어 일괄적으로 실행하는 기법입니다. 주로 3D 그래픽스(WebGL, WebGPU) 환경에서 GPU로 보내는 드로우 콜(Draw Call) 횟수를 줄여 성능 오버헤드를 최소화하는 데 사용됩니다. 또한 웹 개발 환경에서는 DOM의 읽기 및 쓰기 작업을 묶어 불필요한 레이아웃 재계산을 방지하는 목적으로도 활용됩니다.

📖 구조화된 지식 (Synthesized Content)

  • 드로우 콜(Draw Call) 최소화 전략 성능은 종종 실행되는 명령(드로우 콜)의 수에 크게 의존하기 때문에, 여러 그리기 호출을 하나의 WebGL 호출로 병합하는 배칭 기능은 성능 향상의 핵심입니다 [1, 2].
  • 3D 그래픽스 엔진에서의 활용
    • Cesium: 여러 객체를 하나의 명령으로 결합하기 위해 배칭을 사용합니다. 예를 들어, BillboardCollection은 가능한 한 많은 빌보드(Billboard)를 하나의 정점 버퍼(Vertex Buffer)에 저장하고, 이를 동일한 셰이더를 통해 렌더링함으로써 명령의 수를 대폭 줄입니다 [1]. 또한 엔진이 가시 절두체(Frustum)를 분할할 때마다 명령을 개별적으로 정렬 및 배칭(Batch)하여 작동 지연 시간을 최소화합니다 [3].
    • Wonderland Engine: 배칭 기능을 극한으로 적용하여, 수만 개의 동적 객체가 포함된 장면(Scene)을 자동으로 10개 미만의 드로우 콜로 렌더링해 냅니다 [2].
  • WebGPU에서의 명령어 배칭(Command Batching) WebGPU는 명령어 기록과 제출을 분리하는 구조를 가집니다. 명령들은 명령 버퍼(Command buffers)에 기록된 후, 일괄적으로(in batches) GPU 큐(Queue)에 제출됩니다 [4]. 이는 프레임당 API 오버헤드를 크게 줄여주며, GPU 드라이버가 명령어 실행을 더 효과적으로 최적화할 수 있게 만듭니다 [4].
  • UI 레이아웃 및 DOM 성능 최적화 웹 성능 지표(Core Web Vitals) 중 하나인 INP(Interaction to Next Paint)를 최적화하기 위해서도 배칭 개념이 쓰입니다. 읽기 작업 직후 쓰기 작업을 수행하여 발생하는 과도한 동기식 레이아웃 재계산(레이아웃 스래싱)을 방지하기 위해, DOM 읽기 및 쓰기 작업을 현명하게 배칭(Batch)하여 처리하는 것이 권장됩니다 [5].

⚠️ 모순 및 업데이트 (Contradictions & RL Update)

  • 과거 데이터와의 충돌: 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
  • 정책 변화: Graphics & Performance 분야의 자동 자산화 수행.

🔗 지식 연결 (Graph)

  • Related Topics: Draw Calls, WebGL, WebGPU, Interaction to Next Paint (INP)
  • Projects/Contexts: Cesium, Wonderland Engine
  • Contradictions/Notes: 소스 내에서 배칭에 관한 상충되는 의견은 없으나, 3D 엔진에서의 '드로우 콜 병합'과 프론트엔드 최적화에서의 'DOM 연산 일괄 처리'라는 서로 다른 두 가지 시스템 컨텍스트에서 성능 개선을 위한 공통된 원리로 작용하고 있음을 보여줍니다.

Last updated: 2026-04-19

  • Raw Source: 00_Raw/2026-04-20/Batching.md