Sobes.tech
Middle

Кучалык чогултуучу кандай иштейт?

sobes.tech AI

AIден жооп

Go тилинде калдык жыйноочу (GC) үч фазалуу, атаандаштык процесси катары ишке ашырылып, "mark-and-sweep" алгоритмин колдонуп жатат.

GCнин негизги этаптары:

  1. Mark (белгилөө): калдык жыйноочу тамыр объекттерден (глобалдык өзгөрмөлөр, goroutine стектери) баштап, бардык жеткиликтүү объекттерди рекурсивдүү жашыл деп белгилейт.

  2. Sweep (тазалоо): белгилөөдөн кийин, белгиленбеген бардык объекттер калдык деп эсептелип, бошотулат.

  3. Атаандаштык: GC программа иштөө менен бирге иштейт жана токтоолорду минималдаштырат. Go GC токтоолорду миллисекунддар диапазонунда кармап турууга аракет кылат.

Go GC төмөнкү кечигүү үчүн оптималдаштырылган жана процессорлордун саны менен масштабдошот. Ал автоматтык түрдө эс тутумду башкаруу менен программалаучуну кол менен башкаруудан бошотот.

Мисал: эгер сиз объекттерди түзүп, аларга шилтемелерди токтотсоңуз, GC убакыт өткөн сайын ошол объекттердин эс тутумун бошотот, сиздин аралашууңузсуз.