Tôi đã thử bộ nhớ cache ổi gần đây và đã bị ngạc nhiên bởi chính sách trục xuất. Mặc dù bộ nhớ cache được ghi rõ là một lru trong tài liệu, nhưng nó không phải là defacto. Đối với tôi, việc trục xuất có vẻ ngẫu nhiên như các thử nghiệm của tôi. (thử nghiệm là để thêm 100 etnries, nhận được 100 mục, nồi khác nhau 100 mục, kiểm tra trật tự eviction) Tôi không muốn phát hiện một số evictions bất ngờ trong thời gian chạy. Bạn có thể vui lòng cung cấp một số nền tảng đằng sau chính sách trục xuất cho một bộ nhớ cache có giới hạn kích thước. Làm thế nào tôi có thể buộc bộ nhớ cache ổi để đuổi như LHM không?Chính sách xóa bỏ bộ nhớ cache của ổi
Trả lời
Bộ nhớ cache ổi là được phân đoạn thành concurrencyLevel
các bảng băm khác nhau để cho phép đọc và ghi đồng thời nhiều lần. Giá trị mặc định là concurrencyLevel
4. Về cơ bản, nếu maximumSize
của bạn được thiết lập để 100
, sau đó kết quả thực sự duy nhất trong mỗi trong số bốn phân khúc nhận được một maximumSize
của 25. Đây là lý do tại sao các quốc gia maximumSize
tài liệu:
Lưu ý rằng bộ nhớ cache có thể loại bỏ mục nhập trước khi vượt quá giới hạn này. Khi kích thước bộ nhớ cache tăng lên gần mức tối đa, bộ nhớ cache sẽ loại bỏ các mục nhập ít có khả năng được sử dụng lại.
Vì vậy, nếu tình cờ, có 30 mục nhập vào một phân đoạn cụ thể, sau đó 5 mục nhập đó sẽ bị xóa.
Cách duy nhất để yêu cầu xóa toàn cầu ít được truy cập gần đây nhất đối với Cache
là tắt hoàn toàn đồng thời bằng cách đặt concurrencyLevel(1)
. Ngay cả khi đó, tài liệu không thực hiện bất kỳ nào đảm bảo về thứ tự xóa bỏ các yếu tố và bạn không nên phụ thuộc vào nó.
- 1. Chính sách bộ nhớ cache của NSURLRequest
- 2. Chính sách bộ nhớ cache iOS
- 3. Gỡ bỏ bộ nhớ cache khỏi bộ nhớ cache L1 khi xóa L2
- 4. Cách xóa bộ nhớ cache của HttpWebRequest
- 5. Cách xóa Bộ nhớ Cache của Smarty
- 6. Hiệu suất kém với Bộ nhớ cache ổi trên Android
- 7. Restkit Chính sách bộ nhớ cache 20.x
- 8. Buộc xóa bộ nhớ cache
- 9. Xóa bộ nhớ cache NSURLConnection
- 10. Xóa bộ nhớ cache ActiveRecord
- 11. Xóa bộ nhớ cache Magento
- 12. Bộ nhớ cache của ổi có xem trọng lượng trong các lựa chọn trục xuất không?
- 13. Cách xóa/xóa biến bộ nhớ cache
- 14. Chromecast: Cách xóa bộ nhớ cache nhận
- 15. Xóa bỏ bộ nhớ khi bộ nhớ cache đầy đủ là 50%
- 16. Gọi ajax để xóa bộ nhớ cache
- 17. Cách xóa bộ nhớ cache Android
- 18. Làm cách nào để xóa bộ nhớ cache của iFrame?
- 19. Composer.phar Symfony xóa bộ nhớ cache
- 20. Android: Xóa bộ nhớ cache lập trình
- 21. Tắt/xóa bộ nhớ cache OleDbConnection
- 22. Lệnh xóa bộ nhớ cache NFS?
- 23. Bộ nhớ cache, tắt bộ nhớ đệm
- 24. Bộ nhớ cache của tôi đang bị xóa, tại sao?
- 25. Làm cách nào để xóa bộ nhớ cache của UIWebView?
- 26. Cách xóa bộ nhớ cache hình ảnh của Facebook
- 27. Vấn đề xóa bộ nhớ cache của Symfony 2
- 28. Sự cố xóa/xóa bộ nhớ cache NHibernate?
- 29. ray giá bộ nhớ cache - cách xóa thủ công tất cả bộ nhớ cache
- 30. Danh sách nội dung của bộ nhớ cache véc ni?
Cảm ơn bạn đã trả lời Louis. Đối với tôi, không rõ cách xử lý tài liệu đó. Vì vậy, ít concurrencyLevel = nhiều LRU. Nhưng tôi vẫn còn bối rối với việc loại bỏ cấp độ phân khúc. Tôi có đúng không nếu một phân đoạn đầy đủ nói> 25 (100/4) trong trường hợp của tôi, việc trục xuất sẽ bắt đầu? hoặc nó sẽ đuổi chỉ ở ~ maxSize nhưng sẽ loại bỏ một mục nhập lru cấp độ phân đoạn? –
Nếu phân khúc vượt quá 25 mục, nó sẽ loại bỏ mục nhập ít nhất được sử dụng gần đây _trong phân khúc đó._ –
(Về cơ bản, mỗi phân đoạn hoạt động nhiều hoặc ít hoàn toàn độc lập, để chúng có thể được sử dụng đồng thời mà không bị chặn lẫn nhau.) –