๊ฐœ๋ฐœ๐Ÿ’ป/C#

[C#] GC(Garbage Collection)

VIP 2023. 6. 1. 00:02
728x90
๋ฐ˜์‘ํ˜•

 

์šฉ์–ด์ •๋ฆฌ
  • LOH (Large Object Heap) : 85kb๋ณด๋‹ค ์ž‘์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น, ๋Œ€๋‹ค์ˆ˜์˜ ๊ฐ์ฒด๋“ค์ด ํ• ๋‹น/ํ•ด์ œ๋˜๋Š” ๊ณต๊ฐ„
  • SOH (Small Object Heap) : 85kb๋ณด๋‹ค ํฐ ์‚ฌ์ด์ฆˆ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น
  • POH (Pinned Object Heap) : .NET 5.0๋ถ€ํ„ฐ ์ถ”๊ฐ€๋œ ๊ณ ์ • ๋ฉ”๋ชจ๋ฆฌ(Pinned Memory) ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๊ณต๊ฐ„

 

Garbage Collection ํŠน์ง•
  • Garbage Collection์€ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ, ํ”„๋กœ๊ทธ๋žจ์ด ๋™์ ์œผ๋กœ ํ• ๋‹นํ–ˆ๋˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ์ค‘์— ํ•„์š”์—†์–ด์ง„ ์˜์—ญ์„ ํ•ด์ œํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ์ค„์—ฌ์„œ GC๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
  • CG๋Š” ์‹œ์Šคํ…œ์—์„œ ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋™์  ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋Ÿญ์„ ์ฐพ์•„ ์ž๋™์œผ๋กœ ์žฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ž์›์œผ๋กœ ํšŒ์ˆ˜ํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ, Garbage Collection์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ถ€๋ถ„์„ Garbage Collector๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
  • C, C++์™€ ๊ฐ™์€ ์–ธ์–ด๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌ ํ•ด์ค˜์•ผ ํ–ˆ์ง€๋งŒ, C#, Java์™€ ๊ฐ™์€ ์–ธ์–ด๋Š” GC๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ž๋™์œผ๋กœ ๊ด€๋ฆฌํ•ด์คŒ์œผ๋กœ์จ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฌดํ•œํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ€์ง„๊ฒƒ์ฒ˜๋Ÿผ ๊ฐœ๋ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•œ๋‹ค.

 

Garbage Collection ์žฅ์ 
  • ์œ ํšจํ•˜์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์„ ๋ฐฉ์ง€
  • ๋ฉ”๋ชจ๋ฆฌ ์ด์ค‘ ํ•ด์ œ ๋ฐฉ์ง€
  • ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๋ฐฉ์ง€

 

Garbage Collection ๋‹จ์ 
  • ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋น„์šฉ ๋ฐœ์ƒ
  • GC๊ฐ€ ์ˆ˜ํ–‰๋˜๋Š” ์‹œ์ ๊ณผ ์‹œ๊ฐ„์„ ์˜ˆ์ธกํ•˜๊ธฐ ์–ด๋ ค์›€
  • ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ ์‹œ์ ์„ ์•Œ ์ˆ˜ ์—†์Œ

 

C#์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ
  • C# ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋˜๋ฉด CLR์ด ํ•ด๋‹น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ œ๊ณตํ•œ๋‹ค.
  • CLR์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— Managed Heap์ด๋ผ ๋ถ€๋ฅธ๋‹ค.
  • CLR์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌ ํ•˜๊ธฐ ์œ„ํ•ด ์„ธ๋Œ€๋ฅผ ๋‚˜๋ˆˆ๋‹ค. (์„ธ๋Œ€๊ฐ€ ๋‚ฎ์„์ˆ˜๋ก(0์„ธ๋Œ€์— ๊ฐ€๊นŒ์šธ์ˆ˜๋ก) ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋นจ๋ฆฌ ํ•ด์ œ๋จ)
0์„ธ๋Œ€ : ์ตœ๊ทผ์— ์ƒ์„ฑ๋œ ๊ฐ์ฒด
1์„ธ๋Œ€ : 1ํšŒ์˜ GC๋™์•ˆ ์‚ด์•„๋‚จ์€ ๊ฐ์ฒด
2์„ธ๋Œ€ : 2ํšŒ ์ด์ƒ์˜ GC ๋™์•ˆ Heap ์˜์—ญ์— ์ €์žฅ๋˜์–ด์žˆ๋Š” ๊ฐ์ฒด
  • C#์—์„œ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์ด์ฆˆ์— ๋”ฐ๋ผ SOH, LOH, POH๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ด€๋ฆฌํ•œ๋‹ค.
    • SOH๋Š” GC ๋ฐฉ์‹์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.
    • LOH๋Š” GC์—์„œ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ๋ฅผ ํ•˜์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ ์ปดํŒฉ์…˜์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค. (์šฉ๋Ÿ‰์ด ํฐ ๊ฐ์ฒด์˜ ๊ฒฝ์šฐ, ๋ฉ”๋ชจ๋ฆฌ ์žฌ๋ฐฐ์น˜์— ๋Œ€ํ•œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ํฌ๊ธฐ ๋•Œ๋ฌธ์— 2์„ธ๋Œ€ GC์—์„œ๋งŒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œ)
    • POH : Pinned Memory๋Š” ๋ฉ”๋ชจ๋ฆฌ ํฌ์ธํ„ฐ๋“ค์„ ๊ณ ์ •์‹œ์ผœ GC์—์„œ ๋ฉ”๋ชจ๋ฆฌ ์••์ถ•์„ ํ•˜์ง€ ๋ชปํ•˜๋„๋ก ๋ฐฉํ•ดํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋‹จํŽธํ™”๋ฅผ ์œ ๋ฐœํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด์†Œํ•˜๊ธฐ ์œ„ํ•ด .NET 5.0 ๋ถ€ํ„ฐ ์ถ”๊ฐ€๋œ Heap (GC.AllocateArray๋ฅผ ํ†ตํ•ด์„œ Blittable ํ˜•์‹๋งŒ์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œํ•œ๋˜์–ด ์žˆ์Œ)

 

C#์˜ Garbage Collection
  • CLR์•ˆ์—๋Š” ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์„ ๋‹ด๋‹นํ•˜๋Š” ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๊ฐ€ ์กด์žฌํ•œ๋‹ค.
  • C#์œผ๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋Š” ๊ด€๋ฆฌํ˜• ์ฝ”๋“œ(Managed Code)์— ์†ํ•˜๋ฉฐ CLR์ด ํ•ด๋‹น ์ฝ”๋“œ์— ๋Œ€ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น, ์Šค๋ ˆ๋”ฉ ๋“ฑ์˜ ๊ด€๋ฆฌ์™€ ํ•จ๊ป˜ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์˜ ์—ญํ• ๋„ ์ฑ…์ž„์ง„๋‹ค. unsafe ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋น„ ๊ด€๋ฆฌํ˜• ์ฝ”๋“œ(Unmanaged Code)๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ CLR์˜ ๊ด€๋ฆฌ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์—†๋‹ค.

 

C# Garbage Collection Methods
  • C#์—์„œ ์ง€์›ํ•˜๋Š” GC์˜ Methods๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
Method ๊ธฐ๋Šฅ
CG.Collect() ๋ชจ๋“  ์„ธ๋Œ€(0~2์„ธ๋Œ€)์˜ GC ์ฆ‰์‹œ ์ˆ˜ํ–‰
GC.Collect(int) 0์„ธ๋Œ€์—์„œ ์ง€์ •๋œ ์„ธ๋Œ€๊นŒ์ง€์˜ GC ์ฆ‰์‹œ ์ˆ˜ํ–‰
GC.CollectionCount(int) ์ง€์ •๋œ ์„ธ๋Œ€์˜ ๊ฐœ์ฒด์— ๋Œ€ํ•˜์—ฌ GC๊ฐ€ ์ˆ˜ํ–‰๋œ ํšŸ์ˆ˜ ๋ฐ˜ํ™˜ (GC ์ˆ˜ํ–‰ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•ด ์‚ฌ์šฉ)
GC.GetGeneration(object) Object์˜ ํ˜„์žฌ ์„ธ๋Œ€ ๋ฐ˜ํ™˜
GC.MaxGeneration ํ˜„์žฌ ์ง€์›ํ•˜๋Š” ๊ฐ€์žฅ ํฐ ์„ธ๋Œ€ ๋ฒˆํ˜ธ๋ฅผ ๋ฐ˜ํ™˜

 

GC ํšจ์œจ์„ฑ ํ–ฅ์ƒ ๋ฐฉ๋ฒ• (๋ฉ”๋ชจ๋ฆฌ ์ตœ์ ํ™”)
  • C#์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ํ†ตํ•ด GC ํšจ์œจ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์ด ์žˆ์ง€๋งŒ ๋Œ€ํ‘œ์ ์œผ๋กœ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
1. string ์‚ฌ์šฉ ์‹œ, + ์—ฐ์‚ฐ์ž๋ณด๋‹ค StringBuilder ์‚ฌ์šฉ ๊ถŒ์žฅ
- + ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‚ด๋ถ€์ ์œผ๋กœ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ๊ธฐ์กด ๊ฐ์ฒด๋Š” ์ฐธ์กฐ ์—†์ด ๋ฉ”๋ชจ๋ฆฌ์— ์Œ“์ด๊ฒŒ ๋œ๋‹ค.

2. ๋ฐ•์‹ฑ/์–ธ๋ฐ•์‹ฑ ์œ ์˜
- ๊ฐ’ ํƒ€์ž… → ์ฐธ์กฐ ํƒ€์ž…, ์ฐธ์กฐ ํƒ€์ž… → ๊ฐ’ ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ž‘์—…์€ ๋А๋ฆฌ๊ณ  ๊ถŒ์žฅํ•˜์ง€ ์•Š๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ํ•ด๋‹น ์ž‘์—…์ด ์ผ์–ด๋‚  ๋•Œ๋งˆ๋‹ค Heap ๋ฉ”๋ชจ๋ฆฌ์— ์Œ“์ด๊ณ  ๊ฐ’์ด ๋ณต์‚ฌ๋œ๋‹ค.

3. using ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ
- using ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ด„ํ˜ธ {} ๋ฅผ ๋น ์ ธ๋‚˜์˜ฌ ๋•Œ ์ž๋™์œผ๋กœ Dispose๋ฅผ ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

4. ๋ถˆํ•„์š”ํ•œ List ์‚ฌ์šฉ ์ตœ์†Œํ™”
- C#์˜ List๋Š” Linked List๊ฐ€ ์•„๋‹Œ ArrayList์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค. List์— ๋ฐ˜๋ณต์ ์ธ Add, Remove ๋™์ž‘์€ ๋‚ด๋ถ€์ ์œผ๋กœ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์— ๋ณต์‚ฌํ•˜๋Š” ๊ตฌ์กฐ์ด๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์— ์ทจ์•ฝํ•˜๋‹ค.

5. Class ๋‹จ์ผ ์›์น™
- ํ•˜๋‚˜์˜ CSํŒŒ์ผ์—๋Š” ํ•˜๋‚˜์˜ Class๋งŒ ์ •์˜ํ•œ๋‹ค.

6. string ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ ์—†์ด ๋น„๊ต ํ•  ๋•Œ Compare ํ•จ์ˆ˜ ์‚ฌ์šฉ
- string์€ ๋ถˆ๋ณ€ ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ToUpper(), ToLower() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๋ถˆํ•„์š”ํ•œ ๊ฐ์ฒด๋ฅผ ์ถ”๊ฐ€๋กœ ๋งŒ๋“ค๊ฒŒ๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์— ์ทจ์•ฝํ•˜๋‹ค. string.Compare() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ถˆํ•„์š”ํ•œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ ๋น„๊ต๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

7. ๋ณต์žกํ•œ ์ฐธ์กฐ ๊ด€๊ณ„ ์ƒ์„ฑ ์•ˆํ•จ
- ๋ณต์žกํ•œ ์ฐธ์กฐ ๊ด€๊ณ„์—์„œ GC๊ฐ€ ์ˆ˜ํ–‰๋˜๋ฉด ์ฐธ์กฐํ•˜๊ณ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ „๋ถ€ ์ˆ˜์ •ํ•˜๋ฉฐ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

8. ๋ฃจํŠธ ์ตœ์†Œํ™”
- GC๋Š” ๋ฃจํŠธ ๋ชฉ๋ก์„ ๋Œ๋ฉด์„œ ํ•ด์ œํ•  ๊ฐ์ฒด๋ฅผ ์ฐพ์•„๋‚ธ๋‹ค. ๋ฃจํŠธ ๋ชฉ๋ก์ด ์ค„์–ด๋“ค๋ฉด GC๊ฐ€ ์ˆ˜ํ–‰๋˜๋Š” ํšŸ์ˆ˜๋„ ์ค„์–ด๋“ค๊ฒŒ ๋˜๋ฉฐ ์„ฑ๋Šฅ ํ–ฅ์ƒ์— ์œ ๋ฆฌํ•˜๋‹ค.

 


 

C# ๊ณ ์„ฑ๋Šฅ ์„œ๋ฒ„ - ๋ฉ”๋ชจ๋ฆฌ ๋‹จํŽธํ™”

์ด์ œ ๋‹ท๋„ท์˜ GC๋Š” ๊ฝค๋‚˜ ์“ธ๋งŒํ•˜๊ฒŒ ๋ฐœ์ „ํ•˜์—ฌ, ์›ฌ๋งŒํ•œ ๊ฒฝ์šฐ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ๊ตณ์ด ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๊ณ  ์ฝ”๋”ฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์ด C++ ๋Œ€์‹  C#์„ ์„ ํƒํ•˜๋Š” ํฐ ์ด์œ ์ด๊ธฐ๋„ ํ•˜๋‹ค.

leafbird.github.io

 

.NET Framework: 1026. ๋‹ท๋„ท 5์— ์ถ”๊ฐ€๋œ POH (Pinned Object Heap)

.NET Framework: 1026. ๋‹ท๋„ท 5์— ์ถ”๊ฐ€๋œ POH (Pinned Object Heap) [๋งํฌ ๋ณต์‚ฌ], [๋งํฌ+์ œ๋ชฉ ๋ณต์‚ฌ] ์กฐํšŒ: 6289 ๊ธ€์“ด ์‚ฌ๋žŒ ์ •์„ฑํƒœ (techsharer at outlook.com) ํ™ˆํŽ˜์ด์ง€ ์ฒจ๋ถ€ ํŒŒ์ผ ๋ถ€๋ชจ๊ธ€ ๋ณด์ด๊ธฐ/๊ฐ์ถ”๊ธฐ (์—ฐ๊ด€๋œ ๊ธ€์ด 4๊ฐœ

www.sysnet.pe.kr

 

[C#] ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ

C#์˜ ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ์ˆ ์˜ ํ•ต์‹ฌ์ธ Garbage Collector์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

velog.io

 

๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜, ์ปฌ๋ ‰ํ„ฐ(Garbage Collection)๋ž€?

Garbage Collection, ์ค„์—ฌ์„œ ์•ฝ์–ด๋กœ GC๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค. ์˜์–ด๋กœ ๊ทธ๋Œ€๋กœ ์ฝ์–ด์„œ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋ฐฉ๋ฒ• ์ค‘์— ํ•˜๋‚˜๋กœ, ์‹œ์Šคํ…œ์—์„œ ๋”์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋™์  ํ• ๋‹น๋œ ๋ฉ”๋กœ๋ฆฌ ๋ธ”๋Ÿญ

blog.metafor.kr

 

[Programming/C#] ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ (Garbage Collection)

CLR์€ ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ(Automatic Memory Managment) ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์ด ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์˜ ์ค‘์‹ฌ์—๋Š” ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(Garbage Collection)์ด ์žˆ๋‹ค. ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์„ ์šฐ๋ฆฌ๋ง๋กœ ๋ฐ”๊พธ๋ฉด "์“ฐ๋ ˆ๊ธฐ ์ˆ˜๊ฑฐ"๋ผ๋Š”

nomad-programmer.tistory.com

 

C# GC์˜ ์ดํ•ด์™€ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์ตœ์ ํ™”

# GC (๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ - Garbage Collector) ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๋Š” Java๋‚˜ C#์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ž๋™์œผ๋กœ ํ•ด์ œํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.(์ดํ•˜ GC) C#์€ C/C++์˜ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๋ณด๋‹ค ๋น ๋ฅด๋‹ค. C/C++์ฒ˜๋Ÿผ ์ž์œ  ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋ก์„ ๊ฒ€์‚ฌํ•  ํ•„

chipmunk-plump-plump.tistory.com

 

Internals of the POH - .NET Blog

As folks are aware we added a new kind of heap in .NET 5 called the POH (Pinned Object Heap). Since this is a user facing feature (and there aren't that many of those in GC) I've been meaning to write about it but didn't get around till now.

devblogs.microsoft.com

 

[C#] POH(Pinned Object Heap)์ด๋ž€?

๊ณ ์ • ๋ฉ”๋ชจ๋ฆฌ๋ผ๋Š” ๊ฐœ๋…์„ ๋จผ์ € ์งš๊ณ  ๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค. C#์—์„œ๋Š” ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์ด ๋ฉ”๋ชจ๋ฆฌ ์••์ถ•์„ ํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ์˜ ...

blog.naver.com

 

[Programming/C#] ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ (Garbage Collection)

CLR์€ ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ(Automatic Memory Managment) ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์ด ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์˜ ์ค‘์‹ฌ์—๋Š” ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(Garbage Collection)์ด ์žˆ๋‹ค. ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์„ ์šฐ๋ฆฌ๋ง๋กœ ๋ฐ”๊พธ๋ฉด "์“ฐ๋ ˆ๊ธฐ ์ˆ˜๊ฑฐ"๋ผ๋Š”

nomad-programmer.tistory.com

 

728x90
๋ฐ˜์‘ํ˜•