Sobes.tech
Middle+

Ի՞նչ է GC սերունդների (0, 1, 2) կոնցեպցիայի էությունը։ Ինչ ենք օպտիմալացնում։

sobes.tech AI

Պատասխան AI-ից

Կառուցված է գնդակոծության (GC) սերնդային կոնցեպտը այն դիտարկման վրա, որ հիշողության մեջ շատ օբյեկտներ կարճ ժամանակով են ապրում: Հիշողությունը բաժանվում է սերնդների.

  • Սերունդ 0 (փոքր): այստեղ տեղադրվում են նոր օբյեկտներ: GC-ը դրանք ավելի հաճախ է ստուգում, քանի որ այստեղ օբյեկտները արագ հնանում են:
  • Սերունդ 1 (միջնակարգ): այն օբյեկտները, որոնք անցել են սերունդ 0-ի հավաքածուն, տեղափոխվում են այստեղ:
  • Սերունդ 2 (հին): երկար ժամանակ ապրող օբյեկտները տեղադրվում են այստեղ: Այս սերնդի GC-ը ավելի հազվադեպ է գործարկվում:

Օպտիմիզացիան բաղկացած է երիտասարդ օբյեկտների ավելի հաճախ ստուգումից, որտեղ հիշողության ազատման հավանականությունը բարձր է, և հին օբյեկտների ավելի հազվադեպ ստուգումից, ինչը նվազեցնում է հավաքման ծախսերը և բարելավում է ծրագրի կատարողականությունը։