Necesito implementar un caché en java con un tamaño máximo, me gustaría hacerlo utilizando el tamaño real de la caché en la memoria y no el número de elementos en la caché. Este caché básicamente tendrá String como clave y String como valor. Ya he implementado el caché usando la estructura LinkedHashMap de java, pero la pregunta es cómo saber el tamaño real del caché para que pueda adaptar la política para soltar un objeto cuando el tamaño es demasiado grande.LRU byte Cache java
Quería calcularlo utilizando el getObjectSize() del paquete de instrumentación, pero parece que no funciona como se desea.
Cuando obtengoObjectSize (una cadena) cualquiera que sea el tamaño de la cadena, devuelve el mismo tamaño: 32. Supongo que solo está usando el tamaño de referencia de la cadena o algo así y no el contenido. Entonces no sé cómo resolver este problema de manera eficiente.
¿Tiene alguna idea?
¡Muchas gracias!
Thx, eso debería hacer el trabajo y probablemente sea mejor que mi memoria caché implementada, supongo. ¿Qué tipo de caché sugerirías? ¿Según el número de entradas o el tamaño de la memoria caché? Sabiendo que se supone que la aplicación debe ejecutarse en un servidor y puede tomar toda la memoria disponible en la máquina. – Abbadon