--- id: wiki-2026-0508-allocation-timeline title: Allocation Timeline category: 10_Wiki/Topics status: needs_review canonical_id: self aliases: [P-Reinforce-B75DFC] duplicate_of: none source_trust_level: A confidence_score: 0.95 tags: [uncategorized] raw_sources: [] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Mega Batch - Wikified Allocation Timeline" inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08) tech_stack: language: unspecified framework: unspecified --- # [[Allocation Timeline]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > **Allocation Timeline**(λ˜λŠ” Allocation instrumentation on timeline)은 [[Chrome DevTools]]의 Memory νŒ¨λ„μ—μ„œ μ œκ³΅ν•˜λŠ” ν”„λ‘œνŒŒμΌλ§ λ„κ΅¬λ‘œ, μ‹œκ°„ 경과에 λ”°λ₯Έ λ©”λͺ¨λ¦¬ 할당을 κΈ°λ‘ν•˜κ³  μΆ”μ ν•˜μ—¬ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ λ©”λͺ¨λ¦¬ λˆ„μˆ˜λ₯Ό μ§„λ‹¨ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€ [1-3]. 이 λ„κ΅¬λŠ” νž™ ν”„λ‘œνŒŒμΌλŸ¬(Heap Profiler)의 μƒμ„Έν•œ μŠ€λƒ…μƒ· 정보와 νƒ€μž„λΌμΈ νŒ¨λ„μ˜ 증뢄 μ—…λ°μ΄νŠΈ 및 좔적 κΈ°λŠ₯을 κ²°ν•©ν•˜μ—¬ 객체의 생성 μœ„μΉ˜μ™€ μœ μ§€ 경둜([[Retaining Path]])λ₯Ό μ‹€μ‹œκ°„μœΌλ‘œ 식별할 수 있게 ν•΄μ€λ‹ˆλ‹€ [2, 4, 5]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) - **λ™μž‘ 원리와 데이터 μˆ˜μ§‘:** Allocation Timeline은 λ ˆμ½”λ”©μ΄ μ§„ν–‰λ˜λŠ” λ™μ•ˆ 주기적으둜(μ΅œλŒ€ 50ms λ‹¨μœ„λ‘œ 자주) νž™ μŠ€λƒ…μƒ·μ„ μΊ‘μ²˜ν•˜κ³ , λ ˆμ½”λ”©μ΄ μ’…λ£Œλ  λ•Œ λ§ˆμ§€λ§‰ μŠ€λƒ…μƒ·μ„ ν•œ 번 더 찍어 데이터λ₯Ό κ΅¬μ„±ν•©λ‹ˆλ‹€ [3, 6, 7]. ν• λ‹Ήλœ 각 κ°μ²΄μ—λŠ” `@` 기호 뒀에 κ³ μœ ν•œ 객체 IDκ°€ λΆ€μ—¬λ˜λŠ”λ°, 이 IDλŠ” μ—¬λŸ¬ μŠ€λƒ…μƒ·μ— 걸쳐 μ§€μ†λ˜λ―€λ‘œ λ©”λͺ¨λ¦¬ μ£Όμ†Œκ°€ λ³€κ²½λ˜λ”λΌλ„ νž™ μƒνƒœλ₯Ό μ •ν™•ν•˜κ²Œ 비ꡐ할 수 있게 ν•΄μ€λ‹ˆλ‹€ [6, 7]. - **νƒ€μž„λΌμΈ μ‹œκ°ν™” 및 λ§‰λŒ€(Bar)의 의미:** νƒ€μž„λΌμΈ μƒλ‹¨μ˜ λ§‰λŒ€λŠ” νž™μ—μ„œ μƒˆ 객체가 ν• λ‹Ήλœ μ‹œμ κ³Ό κ·Έ 크기(λ§‰λŒ€μ˜ 높이)λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€ [3, 5, 8]. - **νŒŒλž€μƒ‰ λ§‰λŒ€ (Blue bars):** νƒ€μž„λΌμΈ μ’…λ£Œ μ‹œμ κΉŒμ§€ κ°€λΉ„μ§€ μ»¬λ ‰μ…˜(GC)λ˜μ§€ μ•Šκ³  λ©”λͺ¨λ¦¬μ— μ—¬μ „νžˆ μ‚΄μ•„μžˆλŠ”(live) 객체λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€ [1, 3, 8, 9]. - **νšŒμƒ‰ λ§‰λŒ€ (Gray bars):** νƒ€μž„λΌμΈ λ™μ•ˆ ν• λ‹Ήλ˜μ—ˆμœΌλ‚˜ 이후 κ°€λΉ„μ§€ 컬렉터에 μ˜ν•΄ μ„±κ³΅μ μœΌλ‘œ μˆ˜κ±°λ˜μ–΄ ν•΄μ œλœ 객체λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€ [1, 3, 8, 9]. - **λ©”λͺ¨λ¦¬ λˆ„μˆ˜(Memory Leak) 진단 κ³Όμ •:** νŠΉμ • μ‚¬μš©μž μž‘μ—…(예: ν• λ‹Ή 및 ν•΄μ œ λ²„νŠΌ 클릭)을 λ°˜λ³΅ν•  λ•Œ **νŒŒλž€μƒ‰ λ§‰λŒ€κ°€ μ§€μ†μ μœΌλ‘œ λ‚¨λŠ”λ‹€λ©΄ μ΄λŠ” λ©”λͺ¨λ¦¬ λˆ„μˆ˜κ°€ λ°œμƒν–ˆμ„ κ°€λŠ₯성을 λ‚˜νƒ€λ‚΄λŠ” μ£Όμš” μ§€ν‘œ**μž…λ‹ˆλ‹€ [9, 10]. 뢄석 μ‹œ 마우슀λ₯Ό λ“œλž˜κ·Έν•˜μ—¬ νŠΉμ • μ‹œκ°„λŒ€λ‘œ ν™•λŒ€(zoom in)ν•˜λ©΄, ν•΄λ‹Ή κΈ°κ°„ λ™μ•ˆ ν• λ‹Ήλœ ν›„ μ˜ˆμƒ 수λͺ…을 λ„˜κ²¨ ν•΄μ œλ˜μ§€ μ•Šμ€ 객체만 `Constructor` 창에 ν•„ν„°λ§ν•˜μ—¬ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€ [1, 10-12]. - **원인 식별 및 μŠ€νƒ 트레이슀 좔적:** `Constructor` μ°½μ—μ„œ νŠΉμ • μƒμ„±μžλ₯Ό ν΄λ¦­ν•˜λ©΄ `Retainers` 창에 ν•΄λ‹Ή 객체λ₯Ό λ©”λͺ¨λ¦¬μ— μœ μ§€μ‹œν‚€λŠ” μ°Έμ‘° 경둜(retaining tree)κ°€ ν‘œμ‹œλ©λ‹ˆλ‹€ [11, 13]. λ˜ν•œ ν• λ‹Ήλœ νƒ€μž„λΌμΈ λ„κ΅¬λŠ” ν• λ‹Ή λ‹Ήμ‹œμ˜ μŠ€νƒ 트레이슀(stack trace)λ₯Ό μ œκ³΅ν•˜λ―€λ‘œ, κ°œλ°œμžλŠ” λ©”λͺ¨λ¦¬ λˆ„μˆ˜λ₯Ό μœ λ°œν•œ 객체가 μ½”λ“œμ˜ μ •ν™•νžˆ μ–΄λŠ λΆ€λΆ„μ—μ„œ μƒμ„±λ˜μ—ˆλŠ”μ§€ νŒŒμ•…ν•˜κ³  λΆˆν•„μš”ν•œ μ°Έμ‘°λ₯Ό μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [1, 14, 15]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & Updates) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** 지식 μžμ‚°ν™” 및 κΈ°μ‘΄ λ„€νŠΈμ›Œν¬ 연동 단계. - **μ •μ±… λ³€ν™”:** Memory & Systems μΉ΄ν…Œκ³ λ¦¬μ˜ μ „λ¬Έμ„± 확보 및 링크 밀도 μ΅œμ ν™”. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** [[Heap Snapshot]], [[Garbage Collection]], Memory Leak, [[Retaining Path]], [[V8 Heap Architecture]] - **Projects/Contexts:** [[Chrome DevTools]], [[V8 Engine]] - **Contradictions/Notes:** μ†ŒμŠ€ μ „λ°˜μ— 걸쳐 λ‚΄μš©μ˜ λͺ¨μˆœμ€ μ—†μŠ΅λ‹ˆλ‹€. λ‹€μ–‘ν•œ μ†ŒμŠ€κ°€ μΌκ΄€λ˜κ²Œ Allocation Timeline의 νŒŒλž€μƒ‰/νšŒμƒ‰ λ§‰λŒ€μ˜ μ˜λ―Έμ™€ λ©”λͺ¨λ¦¬ λˆ„μˆ˜λ₯Ό μΆ”μ ν•˜κΈ° μœ„ν•œ μŠ€νƒ 트레이슀 및 Retainer λΆ„μ„μ˜ μœ μš©μ„±μ„ κ°•μ‘°ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. --- *Last updated: 2026-04-19* --- ## πŸ€– LLM ν™œμš© 힌트 (How to Use This Knowledge) **μ–Έμ œ 이 지식을 μ“°λŠ”κ°€:** - *(TODO)* **μ–Έμ œ μ“°λ©΄ μ•ˆ λ˜λŠ”κ°€:** - *(TODO)* ## πŸ§ͺ 검증 μƒνƒœ (Validation) - **정보 μƒνƒœ:** needs_review - **좜처 신뒰도:** A - **κ²€ν†  이유:** *(P-Reinforce Phase 1 μžλ™ μ •κ·œν™”. λ³Έλ¬Έ 검증 ν•„μš”.)* ## 🧬 쀑볡 검사 (Duplicate Check) - **κΈ°μ‘΄ μœ μ‚¬ λ¬Έμ„œ:** *(TODO: μΈλ±μ„œ ν΄λŸ¬μŠ€ν„° 리포트 μ°Έμ‘°)* - **처리 방식:** UPDATE (μžλ™ μ •κ·œν™”) - **처리 이유:** Phase 1 μ •κ·œν™” β€” μ˜› ν…œν”Œλ¦Ώ/λˆ„λ½ ν•„λ“œ 보강. ## πŸ•“ λ³€κ²½ 이λ ₯ (Changelog) | λ‚ μ§œ | λ³€κ²½ λ‚΄μš© | 처리 방식 | 신뒰도 | |------|-----------|-----------|--------| | 2026-05-08 | P-Reinforce Phase 1 μ •κ·œν™” (frontmatter + 헀더 ν‘œμ€€ν™”) | UPDATE | A | ## πŸ’» μ½”λ“œ νŒ¨ν„΄ (Code Patterns) **νŒ¨ν„΄ 1:** *(TODO: 이 ν”„λ‘œμ νŠΈ μ»¨λ²€μ…˜ λ°˜μ˜ν•œ ꡬ쑰 μŠ€μΌˆλ ˆν†€)* ```text # TODO ``` ## πŸ€” μ˜μ‚¬κ²°μ • κΈ°μ€€ (Decision Criteria) **선택 Aλ₯Ό 써야 ν•  λ•Œ:** - *(TODO)* **선택 Bλ₯Ό 써야 ν•  λ•Œ:** - *(TODO)* **κΈ°λ³Έκ°’:** > *(TODO)* ## ❌ μ•ˆν‹°νŒ¨ν„΄ (Anti-Patterns) - **[μ•ˆν‹°νŒ¨ν„΄]:** *(TODO: 무엇을 ν•˜λ©΄ μ•ˆ λ˜λŠ”κ°€ + 이유 + λŒ€μ‹  무엇을)*