--- id: P-REINFORCE-AUTO-F5453B category: "[[10_Wiki/πŸ’‘ Topics/Graphics & Performance]]" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - Garbage Collection" --- # [[Garbage Collection]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > κ°€λΉ„μ§€ μ»¬λ ‰μ…˜(Garbage Collection, GC)은 μ‚¬μš©λ˜μ§€ μ•ŠλŠ” κ΅¬ν˜• 데이터λ₯Ό λ©”λͺ¨λ¦¬μ—μ„œ ν•΄μ œν•˜λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ μ—”μ§„μ˜ λ©”λͺ¨λ¦¬ 관리 ν”„λ‘œμ„ΈμŠ€μž…λ‹ˆλ‹€ [1]. ν•˜μ§€λ§Œ Three.js와 같은 μ‹€μ‹œκ°„ 3D λ Œλ”λ§ ν™˜κ²½μ—μ„œλŠ” λΉˆλ²ˆν•œ 객체 μƒμ„±μ΄λ‚˜ λ©”λͺ¨λ¦¬ ν•œκ³„ 초과둜 인해 κ°€λΉ„μ§€ 컬렉터가 μž‘λ™ν•  경우, ν”„λ ˆμž„μ΄ μΌμ‹œμ μœΌλ‘œ λ©ˆμΆ”λŠ”(Stuttering) μ‹¬κ°ν•œ μ„±λŠ₯ μ €ν•˜κ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€ [1-3]. λ˜ν•œ, Three.jsλŠ” GPU μžμ›μ— λŒ€ν•΄ μžλ™μœΌλ‘œ κ°€λΉ„μ§€ μ»¬λ ‰μ…˜μ„ μˆ˜ν–‰ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— 개발자의 λͺ…μ‹œμ μΈ λ©”λͺ¨λ¦¬ 관리가 ν•„μˆ˜μ μž…λ‹ˆλ‹€ [4]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) * **GPU μžμ›μ˜ λͺ…μ‹œμ  ν•΄μ œ ν•„μš”μ„±:** Three.jsλŠ” μ§€μ˜€λ©”νŠΈλ¦¬, 머티리얼, ν…μŠ€μ²˜ λ“±μ˜ GPU μžμ›μ„ μžλ™μœΌλ‘œ κ°€λΉ„μ§€ μ»¬λ ‰νŠΈν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ [4]. λ”°λΌμ„œ 단일 4K ν…μŠ€μ²˜κ°€ 64MB μ΄μƒμ˜ VRAM을 μ°¨μ§€ν•˜λŠ” λ“± λ©”λͺ¨λ¦¬ λˆ„μˆ˜λ₯Ό λ°©μ§€ν•˜λ €λ©΄, μ‚¬μš©μ΄ λλ‚œ μžμ›μ€ λ°˜λ“œμ‹œ `.dispose()` λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•˜μ—¬ λͺ…μ‹œμ μœΌλ‘œ GPU λ©”λͺ¨λ¦¬μ—μ„œ ν•΄μ œν•΄μ•Ό ν•©λ‹ˆλ‹€ [4]. * **ν”„λ ˆμž„ 멈좀(GC Pauses) ν˜„μƒ:** `useFrame`κ³Ό 같은 λ Œλ”λ§ 루프 λ‚΄λΆ€μ—μ„œ 객체λ₯Ό 계속 μƒμ„±ν•˜κ±°λ‚˜, λͺ¨λ°”일 기기의 μ‹œμŠ€ν…œ λ©”λͺ¨λ¦¬ ν•œκ³„λ₯Ό μ΄ˆκ³Όν•˜λŠ” 무거운 ν…μŠ€μ²˜λ₯Ό μ‚¬μš©ν•˜λ©΄ κ°€λΉ„μ§€ μ»¬λ ‰μ…˜μ΄ κ°•μ œλ‘œ νŠΈλ¦¬κ±°λ˜μ–΄ ν”„λ ˆμž„ 멈좀 ν˜„μƒκ³Ό μŠ€ν„°ν„°λ§μ΄ λ°œμƒν•©λ‹ˆλ‹€ [2, 3]. * **동적 버퍼 ν• λ‹Ήκ³Ό TypedArray λΆ€ν•˜:** λŒ€κ·œλͺ¨ μΈμŠ€ν„΄μŠ€ λ Œλ”λ§ ν™˜κ²½μ—μ„œ 버퍼 μš©λŸ‰μ„ μ΄ˆκ³Όν•΄ λ™μ μœΌλ‘œ 버퍼λ₯Ό 계속 ν™•μž₯ν•  경우, μˆ˜μ‹­ λ©”κ°€λ°”μ΄νŠΈ λ‹¨μœ„μ˜ `TypedArray`κ°€ λΉˆλ²ˆν•˜κ²Œ μƒμ„±λ˜κ³  νŒŒκ΄΄λ©λ‹ˆλ‹€ [1]. μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진이 이 κ΅¬ν˜• λ°°μ—΄ 데이터λ₯Ό ν•΄μ œν•˜λŠ” κ³Όμ •μ—μ„œ κ°€λΉ„μ§€ 컬렉터가 μž‘λ™ν•˜μ—¬ 메인 μŠ€λ ˆλ“œμ˜ 점유 μ‹œκ°„μ„ 늘리고 ν”„λ ˆμž„ λ“œλžμ„ μœ λ°œν•©λ‹ˆλ‹€ [1, 5]. * **객체 풀링(Object Pooling)을 ν†΅ν•œ GC λΆ€ν•˜ μ™„ν™”:** κ°€λΉ„μ§€ μ»¬λ ‰μ…˜μœΌλ‘œ μΈν•œ ν• λ‹Ή μ˜€λ²„ν—€λ“œμ™€ 멈좀 ν˜„μƒμ„ λ°©μ§€ν•˜κΈ° μœ„ν•΄μ„œλŠ”, μ΄μ•Œμ΄λ‚˜ νŒŒν‹°ν΄μ²˜λŸΌ 자주 μƒμ„±λ˜κ³  νŒŒκ΄΄λ˜λŠ” 엔티티에 λŒ€ν•΄ μƒˆλ‘œμš΄ 객체λ₯Ό μƒμ„±ν•˜λŠ” λŒ€μ‹  '객체 ν’€(Pool)'을 미리 κ΅¬μ„±ν•˜μ—¬ μž¬μ‚¬μš©ν•˜λŠ” 방식이 κ°•λ ₯히 ꢌμž₯λ©λ‹ˆλ‹€ [6]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Graphics & Performance λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** [[Memory Management]], [[Object Pooling]], [[GPU Resources]] - **Projects/Contexts:** [[Three.js]], [[WebGL]] - **Contradictions/Notes:** μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€. --- *Last updated: 2026-04-19* - Raw Source: [[00_Raw/2026-04-20/Garbage Collection.md]] ---