2011-07-22 38 views
8

Lớp học NSURLCache của Apple có decent documentation, nhưng nó không nói những gì caching algorithm nó sử dụng. Nó là LRU, LFU, hay cái gì khác hoàn toàn?NSURLCache sử dụng thuật toán bộ nhớ đệm nào?

Tôi đang phát triển cho iPad và hy vọng sẽ tận dụng khả năng lưu trữ trên đĩa của bộ nhớ cache NSURLCache để lưu ảnh, bằng cách sử dụng [NSURLCache setDiskCapacity] (mặc định có vẻ là 0). Giới hạn trên của giá trị này là bao nhiêu?

+0

Thông tin đó có thể rất riêng tư đối với Apple. Họ có thể khá thích nó 'nó hoạt động'. –

+0

Từ tài liệu của họ có vẻ như đó là trường hợp. Kinda thô, tôi nghĩ rằng - họ làm cho một lượng lớn các bộ nhớ đệm và kích thước bộ nhớ cache, nhưng không cho bạn biết làm thế nào họ xác định những gì sẽ ở lại hoặc được bán phá giá từ bộ nhớ cache. Cũng có thể ảnh hưởng đến hiệu suất trong (ví dụ) một ứng dụng xem ảnh. –

+0

Nó cũng có thể năng động. Có thể nó thay đổi cách tiếp cận tùy thuộc vào hoàn cảnh. –

Trả lời

3

Giới hạn trên dung lượng đĩa có vẻ là dung lượng đĩa của thiết bị. Tôi không thể thấy bất kỳ điều gì về giới hạn 'áp dụng phần mềm'.

Đối với thuật toán lưu vào bộ nhớ cache, dường như không có bất kỳ tài liệu nào được cung cấp cho táo nhưng tôi đã tìm thấy this. Đó không phải là những gì bạn yêu cầu, nhưng nó chắc chắn cung cấp cho bạn một cái nhìn sâu sắc vào những gì đang xảy ra. Tôi tin rằng điều này sẽ được sử dụng một thuật toán lưu trữ đa hàng đợi (?), Nơi nó được sắp xếp theo kích thước và sau đó ít nhất được sử dụng gần đây.

Nếu bạn đang làm một cái gì đó phụ thuộc vào việc biết thuật toán bộ nhớ đệm, bạn có thể làm một số điều với điều này.

+0

Cảm ơn, điều đó rất thú vị. Như bạn đã đề cập, nó không phải là phiên bản của Apple của 'NSURLCache', và tiềm năng của chúng có thể hoạt động hoàn toàn khác nhau, nhưng bạn sẽ nhận được tiền thưởng cho nỗ lực thực sự. Cảm ơn! :-) –

1

Tôi đoán bạn sẽ phải viết một số trường hợp thử nghiệm để tìm ra. (Và, tất nhiên, hãy lưu ý rằng các thông số có thể thay đổi với phiên bản iO, nền tảng phần cứng, v.v.)

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