óptimo usar una sustitucion reemplazo política politicas paginas memoria medicina lfu esta efecto cuál configuración caché cache algoritmo java algorithm caching

java - usar - memoria cache pdf



¿Por qué el caché usa el algoritmo de uso más reciente(MRU) como política de desalojo? (4)

Conozco los algoritmos de MRU y se invierte uno de los menos usados ​​recientemente (LRU).

Creo que LRU es razonable, ya que el elemento LRU significa que se utilizará al menos en el futuro. Sin embargo, el elemento MRU significa que es muy posible utilizar el elemento en el futuro, ¿por qué desalojarlo? ¿Cuál es el escenario razonable?


Creo que las respuestas de @Jon Skeet y de @Jeremiah Willcock están describiendo el uso de MRU como una forma de evitar la contaminación del caché con entradas inútiles.

  1. Esto solo funciona si sus API de caché le permiten cambiar la política sobre la marcha; por ejemplo, en una base por solicitud. Configurar su política de caché a MRU en situaciones "normales" es probablemente una mala idea ... porque su caché se vuelve ineficaz una vez que se llena.

  2. MRU tiene el problema de que si obtiene un acierto en una entrada que se usa a menudo en el modo "normal" al hacer búsquedas de MRU, termina tirando la entrada ...

Las mejores alternativas a MRU para realizar una exploración sin contaminar el caché son:

  • omitir el caché por completo,
  • probar el caché sin hacer una lectura / actualización, y sin alterar las cadenas LRU.

Por lo que vale, no puedo pensar en ningún caso de uso para MRU que no se ajuste a este patrón general.


Digamos que está guardando los asientos de una sala para un concierto, para agilizar la reserva. Como su aplicación reserva los asientos, elimine el elemento almacenado en caché de la memoria caché, ya que ya no son necesarios para la aplicación de reserva.


El caso de uso es cuando está iterando a través de los mismos datos (más grande que el caché) varias veces, por lo que no volverá a los datos a los que accedió recientemente. 1


Imagine que estaba buscando los detalles de los autobuses cuando llegaban a una parada de autobús, en función de su número de autobús (o del identificador que utilice).

Es algo razonable pensar que si acabas de ver un autobús número 36, es menos probable que veas otro de forma inminente que ver uno de los otros autobuses que paran allí.

Solo un ejemplo, pero la idea es más general: en algunos casos, haber "visto algo" es un buen indicador de que es poco probable que vuelva a ver lo mismo pronto.