Sobes.tech
Junior — Middle

Чӣ тавр механизмии ҷамъоварии партовҳо муайян мекунад, ки объект бояд аз хотира хориҷ карда шавад?

sobes.tech AI

Ҷавоб аз AI

Механизми ҷамъоварии партов (Garbage Collector) муайян мекунад, ки бояд объект аз хотира тоза карда шавад, бар асоси он, ки оё он барои барнома дастрас аст ё не. Агар ба объект дигар ҳеҷ гуна ишораҳои фаъол набошад (яъне, он дастрас нест), ин маънои онро дорад, ки он зарур нест ва метавонад тоза карда шавад.

Роҳи асосӣ барои муайян кардани ин — гузариш дар графи объектҳо, оғоз аз ишораҳои реша (масалан, стеки даъватҳо, тағйирёбҳои статикӣ). Ҳама объектҳое, ки тавассути ишораҳо дастрасанд, зинда ҳисоб мешаванд. Объектҳое, ки ба онҳо дастрасӣ нест, ҳамчун партов ҳисобида мешаванд ва барои тоза кардан пешниҳод мешаванд.

Масалан, алгоритми соддашуда:

  • Аз объектҳои реша оғоз кунед.
  • Ҳама объектҳое, ки аз онҳо дастрасанд, нишон диҳед.
  • Ҳама объектҳое, ки нишон дода нашудаанд, ҳамчун партов ҳисобида мешаванд.
  • Хотираро, ки ин объектҳо ишғол мекунанд, озод кунед.

Дар Android (бар асоси JVM), масалан, алгоритми маркёрӣ ва тозакунӣ (Mark-and-Sweep) ва дигар оптимизатсияҳо истифода мешаванд.