11.07.2015 Views

versión color - PET: Python Entre Todos - Python Argentina

versión color - PET: Python Entre Todos - Python Argentina

versión color - PET: Python Entre Todos - Python Argentina

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

88 Montón (heap)8 1 3 32 1 2508 100 exceptions.KeyboardInterrupt9 1 3 12 0 2520 100 int¡Ahá!¡Esto es importante!Esos 29 objetos evitan que se pueda achicar el heap. Lo que me lleva…Montón (heap)…al heap.Normalmente el heap se agranda y se achica.Ciclo de vida del montónEl montón se expande y contrae, pero en cada ciclo puede quedar “basura”, ocapaz objetos útiles vivos, que impiden que se contraiga del todo. La memoria quequeda en el medio no puede ser utilizada por otros procesos, sólo está libre para<strong>Python</strong>.Como se ve en la figura, cada vez que se achica, no lo hace completamente. A vecesquedan objetos vivos en direcciones elevadas - como el montón no puedefragmentarse (no se puede liberar un espacio del medio del montón, sólo puedeagrandarse o achicarse), esos objetos mantienen la memoria del medio reservadapara <strong>Python</strong>. <strong>Python</strong> puede reusarla, pero el resto del sistema operativo no.Eso daña el caché de disco, daña otros procesos (capaz otros procesos <strong>Python</strong>, en unwebserver puede suceder que tengamos más de un worker corriendo python), daña laperformance general del sistema.Adivinen quiénes tienen la costumbre de dejar objetos vivos en altas direcciones dememoria……así es. Las listas libres. Acá, con guppy encontramos 29 objetos, probablementetodos que están vivos gracias a alguna lista libre que los mantiene vivos. Vemos queun par de ellos son Frames, como decía antes, los Frames causan este tipo de{footer} — http://revista.python.org.ar

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!