[caracas-pm] Liberar memoria con undef (?)

Alberto Mijares amijaresp at gmail.com
Thu Dec 3 10:12:02 PST 2015


Hola lista, un gusto saludarlos:

Hice una pruebita para comprobar una hipótesis y no tuve el resultado esperado.

Tengo un programita donde se contruye un array considerablemente
grande; pero después de usarlo quisiera destruirlo y liberar esa
memoria utilizada mientras se termina de ejecutar el programa.

Pensé que con

undef @array;

podía lograrse lo que quería. Así que hice un one-liner para si
efectivamente funcionaba.

$ perl -E '$t="A"x1024;for(1..50000){push(@t,$t);};say"revisa";sleep(10);undef(@t);say"revisa";sleep(10);'


Viendo la ejecución del programa con top(1), se supone que después que
dice "revisa" la segunda vez debo ver menos memoria utilizada, pero
no. Los valores tanto de SIZE como de RES permanecen iguales.

No dudo que se haya destruido el arreglo (aunque no lo he probado)
pero ¿por qué no se libera la memoria?

Gracias de antemano.

Saludos


Alberto Mijares


More information about the caracas-pm mailing list