IOS Programming -Quản lý bộ nhớ trong Objective-C (phần 1)
Quản lý bộ nhớ trong Objective-C (phần 1)
QUẢN LÝ BỘ NHỚ TRONG OBJECTIVE-C
1. Quản lý bộ nhớ là gì ?
Quản lý bộ nhớ là quản lý việc khởi tạo vùng nhớ cho ứng dụng, sử dụng nó và giải phóng nó khi ta đã hoàn thành công việc. Một chương trình quản lý bộ nhớ tốt sẽ sử dụng ít vùng nhớ nhất có thể.
2. Các phương pháp quản lý bộ nhớ trong Objective-C
Objective-C cung cấp 3 cách quản lý bộ nhớ :
• Manual Reference Counting (MRC) : quản lý bộ nhớ thủ công, có nghĩa là chúng ta sẽ tự quản lý bộ nhớ bằng cách đánh dấu, theo vết vòng đời của object. Cụ thể là ta sẽ đếm việc khởi tạo, sử dụng và giải phóng object trong chương trình.
• Autiomatic Reference Counting (ARC) : quản lý bộ nhớ tự động, hệ thống sẽ dùng bộ đếm tương tự như MRC nhưng nó sẽ thêm vào phương thức quản lý bộ nhớ tự động tại thời điểm compile.
• Garbage Collection (GC) : hệ thống sẽ tự động lưu vết và tự động giải phóng vùng nhớ của object không cần thiết nữa. Nó sử dụng kỹ thuật quản lý bộ nhớ khác với MRC và ARC, tuy nhiên GC chỉ hỗ trợ Mac OS X mà không hỗ trợ iOS.
3. Reference Counting
• Reference Counting(hoặc Retain Counting) : là một kỹ thuật quản lý bộ nhớ của Objective-C nhằm theo vết vòng đời của đối tượng(object), đếm số lượng tham chiếu đến một đối tượng.
• Reference Count(hoặc Retain Count) : số lượng tham chiếu đến một đối tượng.
• Khi đối tượng được khởi tạo bằng các từ khóa như alloc, new, copy thì reference count của nó sẽ tự động là 1.
• Để tăng reference count lên 1, ta gửi thông điệp retain cho đối tượng.
• Để giảm reference count xuống 1, ta gửi thông điệp release cho đối tượng.
• Để có thể biết được reference count hiện tại, ta gửi thông điệp retainCount cho đối tượng.
• Khi reference count giảm xuống 0 thì đối tượng sẽ được hủy, vùng nhớ được giải phóng, lúc này hệ thống sẽ tự động gửi thông điệp dealloc cho đối tượng.
Nhận xét
Đăng nhận xét