Sobes.tech
Junior — Middle

Իմացեք, թե որքան ժամանակ է պահանջվում ամբողջ հավելվածի դադարեցման գործընթացը աղբի հավաքման ժամանակ:

sobes.tech AI

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

Go (Golang) լեզվում աղբի հավաքումը իրականացվում է նվազագույն ընդհատումներով ծրագրի համար: Ժամանակակից GC-ը՝ երեք փուլով, մրցակցային հավաքիչը, փորձում է նվազեցնել ընդհատումների ժամանակը (stop-the-world) նվազագույնի:

Go-ի GC-ում սովորական ընդհատման ժամանակը սովորաբար չափվում է միկրոսեկունդներով կամ ցածր միլիսեկունդներով, հաճախ՝ պակաս քան 1 միլիսեկունդ, կախված տրամադրված հիշողության ծավալից և բեռից: Սա հասնում է այն բանի, որ մեծ մասը աղբի հավաքման աշխատանքը կատարվում է համաժամանակյա կերպով ծրագրի գործարկման հետ, և ընդհատումները անհրաժեշտ են միայն կարճ ժամանակով սինխրոնիզացիաների համար:

Այսպիսով, ամբողջ ծրագրի ընդհատման ժամանակը GC-ի ժամանակ շատ կարճ է՝ սովորաբար մի քանի հարյուր միկրոսեկունդից մինչև մի քանի միլիսեկունդ, ինչը գրեթե աննկատ է օգտվողի համար։