2011-07-22 28 views
8

Apple'ın NSURLCache sınıfı, decent documentation sınıfına sahiptir, ancak caching algorithm'un ne kullandığını söylemez. LRU, LFU mu yoksa tamamen başka bir şey mi?NSURLCache hangi önbelleğe alma algoritmasını kullanır?

iPad için geliştiriyorum ve NSURLCache disk önbelleğe alma yeteneklerini [NSURLCache setDiskCapacity] (varsayılan 0 olarak görünüyor) kullanarak önbelleğe almak için kullanmayı umuyordum. Bu değerin üst sınırı nedir?

+0

Bu bilgiler Apple'a özel olabilir. “Sadece çalışır” yeterliliğini tercih edebilirler. –

+0

Dokümanlarından, durum böyle görünüyor. Kinda sert, sanırım - önbellekleme ve önbellek boyutlarının büyük bir kısmını yaparlar, ancak ne kalacağını veya önbellekten nasıl atılacağını nasıl belirlediklerini söyleme. Fotoğraf görüntüleme uygulamasında (örneğin) performansı iyi etkileyebilir. –

+0

Ayrıca dinamik olabilir. Koşullara bağlı olarak yaklaşımları değiştirmesi mümkündür. –

cevap

3

Disk kapasitesinin üst sınırı, aygıtın disk kapasitesi gibi görünüyor. 'Yazılımla uygulanan' bir sınır hakkında hiçbir şey göremiyorum.

Önbelleğe alma algoritmasıyla ilgili olarak, sağlanan herhangi bir elma yok gibi görünüyor, ancak this'u bulamadım. İstediğin şey kesinlikle değil, ama size neler olduğuna dair bir fikir veriyor. Bunun, boyuta göre sıralanmış ve daha sonra en son kullanılmış olan bir Çok Kuyruk Önbelleğe Alma Algoritması (?) Kullanacağına inanıyorum.

Önbelleğe alma algoritmasını bilmeye bağlı bir şeyler yapıyorsanız, bununla ilgili bir şey yapabilirsiniz.

+0

Teşekkürler, bu çok ilginç. Bahsettiğiniz gibi, Apple'ın 'NSURLCache' sürümü değil ve potansiyel olarak onların hepsi tamamen farklı şekilde çalışabilir, ancak yine de gerçek çaba için ödül verir. Teşekkürler! :-) –

1

Bunu anlamak için bazı test senaryoları yazmak zorunda kalacağınızı tahmin ediyorum. (Ve elbette, parametrelerin iOs sürümü, donanım platformu vb. Ile değişebileceğinin farkında olun.)