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.

¿Cómo administra memoria <strong>Python</strong>? 79¿Cómo administra memoria <strong>Python</strong>?Antes de ver qué es esto de la fragmentación, debemos estudiar algunos detallesinternos de la administración de memoria en <strong>Python</strong>.¿Cómo dicen ustedes que administra la memoria <strong>Python</strong>? ¿Malloc? (una función en Cque reserva memoria para quienes no saben C)Pues no. <strong>Python</strong> tiene requerimientos inusuales y muy específicos, si utilizara mallocpara satisfacer todas sus necesidades de memoria sería muy ineficiente. <strong>Python</strong>utiliza, en cambio, una serie de técnicas y estrategias diseñadas para minimizar lasllamadas a malloc, llamadas que son muy lentas para usar en el núcleo de la máquinavirtual de <strong>Python</strong>.• Pools• Enteros• Flotantes• Listas libres• Tuplas• Listas• Frames (sí, los frames son objetos y hay que administrarlos también)• ArenasVeamos de qué se tratan uno por unoPoolsNo son piscinas.Son arreglos, vectores de objetos del mismo tipo, que <strong>Python</strong> utiliza comúnmentepara acelerar la creación y destrucción de objetos muy comunes, como lo son losenteros y los números de coma flotante.Cuando <strong>Python</strong> necesita un objeto de estos no crea uno, crea muchos (tantos comoentren en un bloque del pool), y mantiene una lista enlazada de qué objetos tienelibres dentro de cada bloque:{footer} — http://revista.python.org.ar

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

Saved successfully!

Ooh no, something went wrong!