Middle
Чаро зарур аст, ки хотира дар хип ба се наслат тақсим шавад?
sobes.tech AI
Ҷавоб аз AI
Барои оптимизатсияи ҷамъоварии партовҳо (Garbage Collection). Ин ба гипотеза асос ёфтааст, ки аксарияти объектҳо кӯтоҳмуддат мебошанд.
Наслҳо:
- Насли 0 (Насли ҷавон): Бисёре аз объектҳои навро нигоҳ медорад. Ҷамъоварии партовҳо зуд-зуд, аммо тез аст, зеро майдони хурдро коркард мекунад. Объектҳои зинда ба насли 1 кӯчонида мешаванд.
- Насли 1 (Насли миёна): Объектҳое, ки дар насли 0 зинда мондаанд. Ҷамъоварии партовҳо камтар аз насли 0 мешавад. Объектҳои зинда ба насли 2 кӯчонида мешаванд.
- Насли 2 (Насли кӯҳна): Объектҳои дарозмуддатро нигоҳ медорад. Ҷамъоварии партовҳо камтар ва метавонад аз ҳама бештар захираро талаб кунад, зеро ба сканкунии пурра ва фишурдани хотира ниёз дорад.
Фоидаҳо:
- Кам кардани вақти таваққуф: Ҷамъоварии партовҳо дар насли ҷавон бештар, аммо камтар вақт мегирад, ки монеаҳои дар кории барнома кам мешаванд.
- Истифодаи муассири хотира: Объектҳои кӯтоҳмуддат зуд нест карда мешаванд, ҷойро холӣ мекунанд.
- Кам кардани ҳаҷми кор: Ҷамъоваранда ҳар бор тамоми ёдгириро санҷидан намояд.
// Мисоли сохтани объектҳо дар насли 0
object obj1 = new object();
object obj2 = new object();
// Истифодаи баъдӣ метавонад ба кӯчиши онҳо ба наслиҳои оянда оварда расонад
// вобаста ба муддати зиндагӣ