¿Por qué el hilo de Python consume tanta memoria?
¿Por qué el hilo de Python consume tanta memoria?
Medí que generar un subproceso consume 8 megas de memoria, casi tan grande como un proceso de Python completamente nuevo!
OS: Ubuntu 10.10
Edit: debido a la demanda popular, daré algunos ejemplos extraños, aquí está:
from os import getpid
from time import sleep
from threading import Thread
def nap():
print 'sleeping child'
sleep(999999999)
print getpid()
child_thread = Thread(target=nap)
sleep(999999999)
En mi caja, pmap pid dará 9424K
Ahora, ejecutemos el hilo secundario:
from os import getpid
from time import sleep
from threading import Thread
def nap():
print 'sleeping child'
sleep(999999999)
print getpid()
child_thread = Thread(target=nap)
child_thread.start() # <--- ADDED THIS LINE
sleep(999999999)
Ahora pmap pid dará 17620K
Entonces, el costo del hilo adicional es 17620K - 9424K = 8196K
es decir. ¡El 87% de ejecutar un proceso completamente nuevo por separado!
Ahora, ¿no es eso justo, equivocado?