რომელ ეტაპზე ხორციელდება ARC მეხსიერების ავტომატური გამოთვლის რეჟიმში მიმთითებლის გამრიცხველის მართვა?
sobes.tech AI
პასუხი AI-სგან
ARC (Automatic Reference Counting) ავტომატური მითითებების გამოთვლის საშუალებით, მითითებების გამოთვლის მართვა კომპილაციისა და კოდის შესრულების დროს ხდება.
-
კომპილაციის ეტაპზე, კომპილატორი ანალიზს ახდენს კოდზე და ავტომატურად სვამს მითითებების გამოთვლის გაზრდის (
retain) და შემცირების (release) გამოძახებებს ობიექტების მინიჭებისა და გამოყენების ოპერაციების გარშემო. -
შესრულების დროს, ეს დამატებული გამოძახებები მართავს ობიექტების სიცოცხლის ციკლს: გამოთვლის გაზრდით, ობიექტი ინახება; შემცირებით და ნულზე მისვლით, ობიექტი გათავისუფლებულია.
ამგვარად, მითითებების გამოთვლის მართვა მიმალული და ავტომატური ხდება პროგრამის შესრულების დროს, კომპილატორის მიერ დამატებული ინსტრუქციების წყალობით.
Swift-ის მაგალითი:
class Person {}
func createPerson() {
let p = Person() // ARC ზრდის გამოთვლას
// ... p-ის გამოყენება
} // ფუნქციიდან გამოსვლისას, ARC ამცირებს გამოთვლას, და თუ სხვა მითითებები არ არის, ობიექტი გათავისუფლებულია
ეს საშუალებას აძლევს პროგრამისტს, რომ არ იფიქროს მეხსიერების მექანიკური მართვის შესახებ.