Actualmente estoy trabajando en un problema relacionado con la programación en el que intento hacer un hashmap masivo de datos. La clave para los datos es una implementación personalizada de baja memoria de una CharSequence que implementa hashCode() e iguala (...) y el valor es am Integer object.hashmap de memoria baja recomendado para la implementación de Java
Puede haber millones de entradas en esta tabla hash y pude reducir drásticamente el uso de memoria para el valor haciendo que el entero sea un puntero en un archivo a los datos que deseo hacer hash pero el problema es que la clave puede estar decenas de bytes (en promedio 25 bytes) y que las claves deben mantenerse en la memoria en la implementación predeterminada de HashMap.
Necesito un hashmap que tenga una sobrecarga de memoria baja y que posiblemente pueda ubicar las claves en el disco o, alternativamente, almacenar una representación hash de las claves. Si las claves son hash, entonces me preocuparían las colisiones hash.
Idealmente, me gustaría poder almacenar un millón de entradas en el mapa por 50MB de espacio de almacenamiento dinámico (una matriz de bytes de 25 bytes en la clave y un objeto entero en la parte de valor).
¿Alguien tiene alguna experiencia con mapas respaldados por un sistema de archivos de baja memoria que están optimizados para reducir la huella de las teclas?
Gracias,
Chris
el espacio y el tiempo a menudo están en relación de intercambio. ¿Cuál es su requisito de rendimiento/escalabilidad para agregar, buscar, eliminar un nodo? puede usar una matriz si solo quiere poca memoria. –
¿Suena como que quieres es una base de datos en la memoria? –