2012-12-05 39 views
5

Tôi tự hỏi liệu tốt nhất là nên sử dụng một phiên bản NSCache toàn cục hay một vài trường hợp cho mỗi thành phần cần nó.Cách sử dụng NSCache tốt nhất trên một ứng dụng

Ví dụ: tôi có một số lớp con xem để vẽ nội dung vào hình ảnh và lưu vào bộ nhớ cache để tránh tái tạo tất cả thời gian. Có tốt hơn khi có một cá thể NSCache cho mỗi lớp hay chỉ 1 NSCache tập trung cho toàn bộ ứng dụng?

Lưu ý rằng tôi không có nghĩa là một bộ nhớ cache cho mỗi thể hiện của một đối tượng, nó bị chậm để làm điều đó. Tôi đang nói về một ví dụ của NSCache cho mỗi lớp.

Trả lời

3

Nó rõ ràng là phụ thuộc, nhưng tôi thường sẽ bỏ phiếu cho một bộ nhớ cache cho từng loại đối tượng được lưu trong bộ nhớ cache. Bằng cách đó, bạn có thể có các giá trị countLimit khác nhau cho mỗi, ví dụ: để chỉ định những thứ như "giữ 50 hình thu nhỏ được hiển thị gần đây nhất", "giữ lại 5 hình ảnh được tải xuống gần đây nhất", "giữ lại 10 tệp PDF được tải xuống gần đây nhất", v.v.

Đối với các tác vụ thực sự tốn kém về tính toán, tôi cũng sử dụng hai tầng bộ nhớ đệm, NSCache cho hiệu suất tối ưu và lưu vào thư mục tạm thời/bộ nhớ cache trong hệ thống tệp cục bộ để tránh các chu kỳ tải xuống tốn kém trong khi không tiêu thụ RAM.

+0

Tôi thích ý tưởng có các quy tắc bộ nhớ cache khác nhau cho từng đối tượng. Và điểm tốt để có một đối tượng tập trung để quản lý cache. Lưu vào đĩa rõ ràng là một thực hành tốt. – Olivier

2

Nếu các mục được lưu trong bộ nhớ cache có thể được chia sẻ giữa các thành phần, bạn có thể có bộ nhớ cache thống nhất - tra cứu sẽ không đắt hơn nhiều và ít nhất bạn cũng có cơ hội giảm các bản sao dự phòng của các đối tượng được lưu trong bộ nhớ cache.

Nhưng nếu các mục được lưu trong bộ nhớ cache là duy nhất cho mỗi thành phần, hãy trộn chúng trong bộ nhớ cache là vô nghĩa và từ góc độ khả năng đọc mã có thể gây nhầm lẫn. Giữ riêng bộ đệm, trong trường hợp đó. Điều đó cũng cho phép bạn kiểm soát chính xác hơn - ví dụ: bạn có thể loại bỏ mạnh mẽ hơn trong bộ nhớ cache từ các thành phần không được sử dụng ngay lập tức.

+0

Đó cũng là cách tôi thấy mọi thứ. Tôi muốn được tò mò để có thêm ý kiến ​​về chủ đề đó mặc dù. – Olivier

Các vấn đề liên quan