Se me ha asignado la tarea de leer un archivo .txt que es un registro de varios eventos y escribir algunos de esos eventos en un diccionario.Consumo de memoria del módulo Python Shelve
El problema es que el archivo a veces puede tener más de 3 GB de tamaño. Esto significa que el diccionario se vuelve demasiado grande para caber en la memoria principal. Parece que Shelve es una buena forma de resolver este problema. Sin embargo, dado que modificaré constantemente el diccionario, debo tener habilitada la opción writeback
. Esto es lo que me preocupa: el tutorial dice que esto ralentizaría el proceso de lectura/escritura y usaría más memoria, pero no puedo encontrar estadísticas sobre cómo se ven afectados la velocidad y la memoria.
¿Alguien puede aclarar cuánto se ven afectados la velocidad de lectura/escritura y la memoria para que yo pueda decidir si usar la opción de reescritura o sacrificar algo de legibilidad para la eficiencia del código?
Gracias
que depende de lo que está haciendo con el diccionario: si sólo se necesita modificar mediante la sustitución de los valores ('estantería [ 'clave'] = newvalue') No, lo hace necesita escribir de nuevo. Si está modificando tipos mutables en él ('shelf ['key']. Append (x)', necesita writeback. Por supuesto, puede dejar writeback off y siempre recuerde modificar y reemplazar valores en su estante, si Prefiero –
Solo necesito agregar pares de clave y valor. Pero como estoy trabajando con diccionarios anidados, también agregaré k, v pares a los caracteres internos. – inspectorG4dget
¿Puedes escribirlo para que siempre obtengas un valor? del estante, agréguelo a cualquier nivel, y luego colóquelo en el estante? –