LRU önbellek tasarımı
Son zamanlarda en az Kullanılan (LRU) Önbellekte en son kullanılan öğeleri ilk atmak. Nasıl böyle bir önbellek sınıf tasarım uygulamak mı? Tasarım gereksinimleri aşağıdaki gibidir:
1) öğe elimizden geldiğince hızlı bir şekilde bulabilirsiniz
2) bir önbellek özlüyor ve bir önbellek dolduğunda, son zamanlarda en az kullanılan madde mümkün olduğunca hızlı bir şekilde değiştirmemiz gerekiyor.
Nasıl ve desen açısından bu soru analiz uygulamak ve tasarımı algoritma?
CEVAP
Bağlantılı liste işaretçileri karma tablo düğümleri bağlantılı bir listesi LRU önbelleğe uygulamak için her zamanki gibi. Bu(1) işlem (nezih bir karma varsayarak) O verir. Bu avantajı (O(1)): sadece tüm yapı kilitleyerek çok iş parçacıklı bir sürümünü yapabilirsiniz. Granül vb kilitleme hakkında endişelenmenize gerek yok.
Kısaca, çalışma şekli:
Bir değeri bir erişim, başı bağlı listeden ilgili düğüm taşıyın.
Önbellekten bir değer çıkarmak için ihtiyacınız olduğunda, kuyruk ucundan çıkarın.
Önbellek için bir değer eklediğinizde, sadece bağlantılı liste başında yer.
Burada C bir uygulama ile site doublep sayesinde: Miscellaneous Container Templates.
Düzeltmeler için Veritabanı Tasarımı?...
Takas UİWebview önbellek...
Süresi dolduğunda veya IIS statik içer...
Linux bellek: tampon vs önbellek...
Yabancı anahtarlar veritabanı tasarımı...