Tengo un archivo de texto de 310 MB de tamaño (sin comprimir). Cuando usa PerlIO::gzip para abrir el archivo y descomprimirlo en la memoria, este archivo llena fácilmente 2GB de RAM antes de que perl se quede sin memoria.¿Por qué agoto tanta memoria cuando leo un archivo en la memoria en Perl?
se abre el archivo de la siguiente manera:
open FOO, "<:gzip", "file.gz" or die $!;
my @lines = <FOO>;
Obviamente, esta es una manera muy práctico para abrir ficheros comprimidos con facilidad en Perl, pero ocupa una ridícula cantidad de espacio! Mi siguiente paso es descomprimir el archivo en HD, leer las líneas del archivo en @lines, operar en @lines y comprimirlo nuevamente. ¿Alguien tiene alguna idea de por qué se consume más de 7 veces la cantidad de memoria al abrir un archivo comprimido? ¿Alguien tiene una idea alternativa sobre cómo puedo descomprimir este archivo comprimido en la memoria sin que se tome una cantidad ridícula de memoria?
también, Perl 5.12.1 x64 en Mac OS X 10.6 –
Sólo hizo la pregunta 7000a etiquetados 'perl' en stackoverflow. ¡Felicitaciones! :-) – rafl