Es necesario cargar (des-serializar) una lista de pre-computados de números enteros de un archivo en una secuencia de comandos de Python (en una lista de Python). La lista es grande (hasta millones de elementos) y puedo elegir el formato en el que la almaceno, siempre que la carga sea más rápida.lista de Python serialización - método más rápido
¿Cuál es el método más rápido y por qué?
- Usando
import
en un archivo .py que solo contiene la lista asignada a una variable - Usando
load
- algún otro método
cPickle
's (quizásnumpy
?)
Además, ¿cómo ¿Puede uno comparar tales cosas de manera confiable?
Adición: la medición de esta manera confiable es difícil, porque import
se almacena en caché por lo que no se puede ejecutar varias veces en una prueba. La carga con pickle también se vuelve más rápida después de la primera vez probablemente porque el SO precaching de la página. Cargar 1 millón de números con cPickle
lleva 1.1 segundos la primera vez que se ejecuta y 0.2 segundos en las ejecuciones posteriores de la secuencia de comandos.
Intuitivamente siento que cPickle
debería ser más rápido, pero apreciaría los números (este es un gran desafío para medir, creo).
Y sí, es importante para mí que esto funcione rápidamente.
Gracias
¿Es realmente la parte lenta de su código? ¿Con qué frecuencia vas a cargar el archivo? –
¿Has probado alguno de estos? ¿Qué métricas tienes ahora? –
Por lo que vale, puede evitar problemas de importación utilizando "execfile()" ... – gahooa