Junior
Чӣ тавр ҷамъоварии партовҳо (Garbage Collector) дар C#?
sobes.tech AI
Ҷавоб аз AI
Механизми автоматии идоракунии хотира, ки хотираро, ки аз ҷониби объектҳо ишғол шудааст, озод мекунад, ки ба онҳо дигар истинодҳо вуҷуд надорад. Ин пешгирӣ мекунад, ки хотираи нопадид шавад ва равандро содда мекунад.
Принсипҳои кории ҷамъкунандаи партовҳо:
- Тарҷумаи объектҳо: муайян мекунад, ки объектҳо то ҳол аз нуқтаҳои реша (майдонҳои статикӣ, тағирёбҳои маҳаллӣ дар стек) дастрасанд.
- Ҷамъоварии партовҳо: Агар ба объект истинодҳо набошад, ҷамъкунандаи партовҳо онро барои тоза кардан нишон медиҳад.
- Розигардонии хотира: хотирае, ки аз объектҳои тозашуда ишғол шудааст, озод мекунад ва хотираи боқимондаро фишурда, то парчамро кам кунад.
Наслҳои объектҳо:
- Насли 0: Объектҳои нав эҷодшуда ва кӯтоҳмуддатро дар бар мегирад. Ҷамъоварӣ зуд-зуд сурат мегирад.
- Насли 1: Объектҳое, ки аз ҷамъоварии насли 0 гузаштаанд. Ҷамъоварӣ камтар сурат мегирад.
- Насли 2: Объектҳои дарозмуддатро дар бар мегирад. Ҷамъоварӣ камтар сурат мегирад.
Зангҳои маҷбурии GC (кам истифода мешавад ва бо эҳтиёт):
// Зангҳои маҷбурии ҷамъоварии партовҳо
System.GC.Collect();
// интизорӣ барои анҷоми финализаторҳо
System.GC.WaitForPendingFinalizers();
Механизми асосии ҷамъоварии партовҳо дар .NET алгоритми нишон додан ва фишурдан мебошад.