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

Alberto Mijares amijaresp at gmail.com
Thu Dec 3 11:19:12 PST 2015


Bien. Muchas gracias por las explicaciones y referencias, me quedó claro.

Por los momentos, me conformo con saber que la memoria queda
disponible dentro del mismo proceso, así no sea devuelta al sistema
operativo.

Saludos


Alberto Mijares



2015-12-03 14:28 GMT-04:30 Francisco Obispo <francisco at obispo.link>:
> Puedes liberar la memoria con die()
>
> Es decir, el proceso va a liberar la memoria (a.k.a. free()) pero eso no le
> va a devolver la memoria al kernel. Solo terminando el proceso se logra eso.
>
> saludos
>
> On 3 Dec 2015, at 10:12, Alberto Mijares wrote:
>
> 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
>
> ________________________________
>
> caracas-pm mailing list
> caracas-pm at pm.org
> http://mail.pm.org/mailman/listinfo/caracas-pm


More information about the caracas-pm mailing list