Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INTEGRANTES:
CRISTINA BARRENO SIXTO CASTRO REDROBAN. JORDY VASQUEZ
REFERENCE COUNTING
- Antes de la versin 2.0, el intrprete de Python solo utilizaba el recuento de referencias para la gestin de la memoria. - El conteo de referencias funciona contando el nmero de veces que un objeto es referenciado por otros objetos en el sistema. - Cuando se eliminan las referencias a un objeto, el recuento de referencias de ese objeto se decrementa. Cuando el recuento de referencias llega a cero se libera el objeto.
REFERENCE COUNTING
- Es un mtodo eficiente pero tiene algunas advertencias, por ejemplo: no puede manejar ciclos de referencia. - Un ciclo de referencia es cuando no hay forma de llegar a un objeto pero su recuento de referencia es todava mayor que cero.
def make_cycle(): l=[] l.append(l)
make_cycle()
GARBAGE COLLECTOR
Automatic Garbage Collector de Ciclos - Los horarios de recoleccin de basura se basan en el lmite de las asignaciones de objetos y cancelaciones de asignacin de objetos.
- Cuando el nmero de asignaciones menos el nmero de cancelaciones de asignacin son mayores que el nmero umbral, se ejecuta el recolector de basura.
import gc print "Garbage collection thresholds: %r" % gc.get_threshold() Garbage collection thresholds: (700, 10, 10)
Como podemos ver el umbral default es 700. Esto quiere decir que cuando el nmero de alojamientos vs el nmero de desalojamientos es mucho ms grande que 700, el garbage collector se ejecutar.
import sys, gc def make_cycle(): l={} l[0] = l def main(): collected = gc.collect() #Retorna el # objetos inaccesibles que han sido coleccionados y desalojados print ("Garbage collector: collected %d objects." % (collected)) print ("Creating cycles...") for i in range(10): make_cycle() collected = gc.collect() print ("Garbage collector: collected %d objects." % (collected)) if __name__ == "__main__": ret = main()
sys.exit(ret)
OUTPUT: Garbage collector: collected 0 objects. Creating cycles... Garbage collector: collected 10 objects.
FUENTES:
http://deeplearning.net/software/theano/tutorial/pythonmemory-management.html http://www.digi.com/wiki/developer/index.php/Python_Gar bage_Collection http://blog.oscaruriel.com/python-recoleccion-de-basuragarbage-collection/ http://pyspanishdoc.sourceforge.net/lib/module-gc.html http://www.evanjones.ca/memoryallocator/