--- id: P-REINFORCE-AUTO-3FD05B category: "10_Wiki/๐Ÿ’ก Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - Old Space(Old Generation)" --- # [[Old Space(Old Generation)|Old Space(Old Generation)]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > Old Space(๋˜๋Š” Old Generation)๋Š” V8 ์—”์ง„์˜ ํž™(Heap) ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ์ค‘ ํ•˜๋‚˜๋กœ, New Space(Young Generation)์—์„œ ๋‘ ๋ฒˆ์˜ ๋งˆ์ด๋„ˆ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(Scavenge) ์ฃผ๊ธฐ ๋™์•ˆ ์‚ด์•„๋‚จ์€ ์ˆ˜๋ช…์ด ๊ธด ๊ฐ์ฒด๋“ค์ด ์ด๋™(์Šน๊ฒฉ)ํ•˜์—ฌ ์ €์žฅ๋˜๋Š” ๊ณต๊ฐ„์ด๋‹ค [1-3]. ์ด ๊ณต๊ฐ„์€ ์ฃผ๋กœ ์‚ฌ์šฉ์ž ์„ธ์…˜, ์บ์‹œ ๋ฐ์ดํ„ฐ ๋“ฑ ์˜๊ตฌ์ ์ธ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ์— ์‚ฌ์šฉ๋˜๋ฉฐ, New Space์— ๋น„ํ•ด ํฌ๊ธฐ๊ฐ€ ํ›จ์”ฌ ํฌ๊ณ  ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(Major GC)์ด ๋œ ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜์ง€๋งŒ ๋” ๋งŽ์€ ์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค๋ฅผ ์†Œ๋ชจํ•œ๋‹ค [4, 5]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) * **๊ฐ์ฒด์˜ ์Šน๊ฒฉ(Promotion) ๋ฐ ์ˆ˜๋ช…:** V8์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๊ฐ์ฒด๊ฐ€ ์งง์€ ์ˆ˜๋ช…์„ ๊ฐ€์ง„๋‹ค๋Š” '์„ธ๋Œ€์  ๊ฐ€์„ค(Generational hypothesis)'์— ๊ธฐ๋ฐ˜ํ•œ๋‹ค [6]. ์ดˆ๊ธฐ์— New Space์— ํ• ๋‹น๋œ ๊ฐ์ฒด๊ฐ€ ๋‘ ๋ฒˆ์˜ ์Šค์บ๋นˆ์ง€(Scavenge) ์ฃผ๊ธฐ๋ฅผ ๊ฑฐ์นœ ํ›„์—๋„ ์‚ด์•„๋‚จ์œผ๋ฉด, ์žฅ๊ธฐ ๋ณด๊ด€์„ ์œ„ํ•ด ์„ค๊ณ„๋œ Old Space๋กœ ์Šน๊ฒฉ(Promoted)๋œ๋‹ค [1, 3, 4]. ์ „์ฒด ๊ฐ์ฒด ์ค‘ ์•ฝ 20%๋งŒ์ด Old Generation ์˜์—ญ์œผ๋กœ ์‚ด์•„๋‚จ๊ฒŒ ๋œ๋‹ค [7]. * **Old Space์˜ ์„ธ๋ถ€ ๊ตฌ์กฐ:** ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์˜ ํšจ์œจ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด Old Space๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ๊ณต๊ฐ„์œผ๋กœ ์„ธ๋ถ„ํ™”๋œ๋‹ค [3, 8]. * **Old-pointer-space:** ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ๋ฅผ ํฌํ•จํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๊ฐ์ฒด๊ฐ€ ์ €์žฅ๋œ๋‹ค [3, 9]. * **Old-data-space:** ๋ฌธ์ž์—ด(Strings), ๋ฐ•์‹ฑ๋œ ์ˆซ์ž, ํฌ์ธํ„ฐ๊ฐ€ ์—†๋Š” ์›์‹œ ๋ฐ์ดํ„ฐ ๋ฐฐ์—ด ๋“ฑ ์™ธ๋ถ€ ๊ฐ์ฒด์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ๊ฐ์ฒด๋“ค์ด ์ €์žฅ๋œ๋‹ค [3, 9]. ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๋Š” ์ด ์˜์—ญ์—์„œ ํฌ์ธํ„ฐ ์ถ”์ (tracing) ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋งˆํ‚น ๋‹จ๊ณ„์˜ ์†Œ์š” ์‹œ๊ฐ„์„ ํšจ๊ณผ์ ์œผ๋กœ ๋‹จ์ถ•ํ•œ๋‹ค [4]. * **๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(Major GC) ๊ด€๋ฆฌ:** Old Space๋Š” ์ˆ˜๋ฐฑ ๋ฉ”๊ฐ€๋ฐ”์ดํŠธ ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, Scavenge ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋Œ€์‹  **Mark-Sweep** ๋ฐ **Mark-Compact** ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š” Major GC์— ์˜ํ•ด ๊ด€๋ฆฌ๋œ๋‹ค [10-12]. Major GC๋Š” ํž™์„ ์ˆœํšŒํ•˜๋ฉฐ ์‚ด์•„์žˆ๋Š” ๊ฐ์ฒด๋ฅผ ํ‘œ์‹œ(Mark)ํ•˜๊ณ , ์ฐธ์กฐ๋˜์ง€ ์•Š๋Š” ๊ฐ์ฒด์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋นˆ ๊ณต๊ฐ„(Free list)์œผ๋กœ ๊ธฐ๋ก(Sweep)ํ•˜๋ฉฐ, ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ ํŒŒํŽธํ™”(Fragmentation)๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ๊ฐ์ฒด๋“ค์„ ํ•œ๊ณณ์œผ๋กœ ๋ชจ์œผ๋Š” ์••์ถ•(Compact) ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค [13-16]. * **๋ฉ”๋ชจ๋ฆฌ ์ œ์–ด ๋ฐ ํŠœ๋‹:** Old Space์˜ ํฌ๊ธฐ๋Š” `--initial_old_space_size`์™€ `--max-old-space-size`๋ผ๋Š” V8 ์ปค๋งจ๋“œ๋ผ์ธ ํ”Œ๋ž˜๊ทธ๋ฅผ ํ†ตํ•ด ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค [3, 17]. ๋Œ€๋Ÿ‰์˜ ์˜๊ตฌ ๋ฐ์ดํ„ฐ๋‚˜ ์‚ฌ์šฉ์ž ์„ธ์…˜ ์ •๋ณด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฒฝ์šฐ, ์žฅ๊ธฐ ์ƒ์กด ๊ฐ์ฒด๊ฐ€ Old Space์— ๊ฐ€๋“ ์ฐจ๋ฉด ๋นˆ๋ฒˆํ•˜๊ณ  ๋น„์šฉ์ด ํฐ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์ด ๋ฐœ์ƒํ•ด ์‘๋‹ต ์†๋„ ์ €ํ•˜ ๋˜๋Š” OOM(Out of Memory) ์ถฉ๋Œ์ด ์ผ์–ด๋‚  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํ•ด๋‹น ํ”Œ๋ž˜๊ทธ๋ฅผ ํ†ตํ•ด Old Space์˜ ์ œํ•œ ํฌ๊ธฐ๋ฅผ ๋Š˜๋ฆฌ๋Š” ํŠœ๋‹์ด ๊ถŒ์žฅ๋œ๋‹ค [5, 17]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Programming & Language ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[New Space(Young Generation)|New Space(Young Generation)]], [[Major GC|Major GC]], [[Mark-Sweep-Compact|Mark-Sweep-Compact]], [[Garbage Collection|Garbage Collection]] - **Projects/Contexts:** V8 Engine Memory Management, Node.js Performance Tuning - **Contradictions/Notes:** ์†Œ์Šค์— ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. --- *Last updated: 2026-04-19* - Raw Source: 00_Raw/2026-04-20/Old Space(Old Generation).md ---