Ngăn ngừa Memory leaks bằng autoreleasepool trong unit test

Memory leaks thường xảy ra mà không có bất cứ thông báo nào. Mặc dù việc sử dụng weak reference cho self trong các closure đã giúp ích rất nhiều, nhưng như thế là chưa đủ. Chúng ta có thể sử dụng memory graph debugging hoặc Xcode Instruments để tìm và giải quyết các lỗi về bộ nhớ. Nhưng nó khá phức tạp và tốn nhiều thời gian. Rất may là chúng ta có một cách đơn giản hơn, là bằng cách sử dụng unit test. Phương pháp này không thể ngăn chặn được tất cả các leak, nhưng nó vẫn rất hiệu quả. ...

June 16, 2020 · 4 min · iamqh

Hiểu về Copy-on-Write trong Swift

Trong Swift, ta có kiểu reference type (Class) và value type (Struct, Tuble, enum). Kiểu value type có bản chất là copy. Có nghĩa là nếu bạn gán một value type cho một biến hoặc pass nó như một parameter của function (không phải inout), dữ liệu của value type này sẽ được copy. Lúc này, bạn sẽ có 2 value type có nội dung giống nhau nhưng có 2 địa chỉ bộ nhớ riêng biệt. Hôm nay chúng ta sẽ nói về Copy-on-Write (CoW), một thứ rất quan trọng để hiểu về cách quản lý bộ nhớ value type của Swift ...

May 17, 2020 · 3 min · iamqh