λμ Gen2 GCκ° λ°±κ·ΈλΌμ΄λ GC μ€λ λμμ μ€νλμ§ μκ³ λμ 컬λ μ μ νΈλ¦¬κ±° ν μ€λ λμμ μ€νλλ κ²μ²λΌ 보μ΄λ netcore 2.2μμ κ°λ λ¬Έμ κ° λ°μν©λλ€.
μ΄λ κΈ°λ³Έ GC νλ‘ν (μν¬ μ€ν μ΄μ , λμ GC μ¬μ©, λν ν λκΈ° μκ° λͺ¨λ)μ μ¬μ©νμ¬ 64 λΉνΈ .NET Core 2.2 λ°νμμ λ¦΄λ¦¬μ€ κ΅¬μ±μμ μ±μ μ€ννλ Windows 10 κ°λ°μμ κ΄μ°°λμμΌλ©° μ±λ₯보기 μνμ κ°μ Έμ¬ μμμμ΅λλ€. λ°μμ :
GC μμ€λ₯Ό μ΄ν΄λ³΄λ©΄ μ΄ μ»€λ°μ λ¬Έμ κ°μμ μ μλ€κ³ μκ°ν©λλ€. λ³κ²½νκΈ° μ μ bgc_thread
λ μ€λ λ μμ±μ μ€μ λλ©° void gc_heap::garbage_collect (int n)
μμ νμΈ λ λ ββμ€μ λλλ‘ λ³΄μ₯λ©λλ€. λ³κ²½ ν bgc_thread
λ μ΄μ μ€ν μμμ μ μ€λ λ λ΄μ μ€μ λ©λλ€. μ΄λ ν΄λΉ νλκ° λμ GCκ° κ³μλλ μκ°μ μ€μ λμ§ μμ μμλ κ²½μ 쑰건μ λμ
νλ κ²μ²λΌ 보μ
λλ€.
μ, μ’μ λ°κ²¬!
@PeterSolMS , @VSadov μ¬λ¬λΆ μ€ ν λͺ
μ΄ μ΄ν΄λ³΄κ³ μμ ν΄ μ£Όμκ² μ΅λκΉ?
μ¬κΈ°μ μν λ μ€μ GCκ° λ μ΄μ BGCκ° μλλΌλ μ μ μ§μ νκ³ μΆμμ΅λλ€. BGC μ€λ λλ₯Ό μμ±νμ§ λͺ»ν κ²μΌλ‘ μ²λ¦¬νλ―λ‘ λ¨μν μ 체 μ°¨λ¨ GCλ₯Ό μννκ³ μμ΅λλ€. μ΄ μ΄λ²€νΈλ μ€ν΄μ μμ§κ° μμΌλ―λ‘ (μ¬μ ν BackgroundλΌκ³ νμλ¨) BGCλ₯Ό μ€μ λ‘ μννμ§ λͺ»ν κ²½μ° (BGC μ€λ λλ₯Ό μμ±νμ§ λͺ»νκ±°λ λ€λ₯Έ μ΄μ λ‘) ν΄κ²°ν΄μΌν©λλ€.
bgc_thread μ€μ κ²½μ£Όμ κ²½μ° μ€μ λ‘μ΄ μ€ λ€μ bgc_thread_stub
, CreateSuspendableThread
μ μ€μ ν νμκ° μμ΅λλ€.
args.Thread = SetupUnstartedThread(FALSE);
Thread κ°μ²΄λ μ΄λ―Έ μ¬μ© κ°λ₯ν©λλ€.μ΄ ν¨μμ λͺ¨λ μ΄ν λ‘μ§μ μμ± λ Threadλ₯Ό λ³κ²½νμ§ μμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
μ¬κΈ°μ μν λ μ€μ GCκ° λ μ΄μ BGCκ° μλλΌλ μ μ μ§μ νκ³ μΆμμ΅λλ€. BGC μ€λ λλ₯Ό μμ±νμ§ λͺ»ν κ²μΌλ‘ μ²λ¦¬νλ―λ‘ λ¨μν μ 체 μ°¨λ¨ GCλ₯Ό μννκ³ μμ΅λλ€. μ΄ μ΄λ²€νΈλ μ€ν΄μ μμ§κ° μμΌλ―λ‘ (μ¬μ ν BackgroundλΌκ³ νμλ¨) BGCλ₯Ό μ€μ λ‘ μννμ§ λͺ»ν κ²½μ° (BGC μ€λ λλ₯Ό μμ±νμ§ λͺ»νκ±°λ λ€λ₯Έ μ΄μ λ‘) ν΄κ²°ν΄μΌν©λλ€.