He escrito un script de carga de base de datos en ColdFusion y tengo un problema con el que el script se queda sin memoria lentamente. He dividido cada carga de tabla en su propio hilo con <cfthread> y llamo al recolector de basura cuando la memoria cae por debajo del 50% (asegurándose de tener 30 segundos entre llamadas gc() para evitar que el recolector de basura acapare la memoria) .Implicaciones de memoria para devolver una consulta desde un CFC
Creé un CFC para contener todas las consultas necesarias para el script. El script llama a la función CFC apropiada que luego devuelve la consulta, algunas de las cuales tienen más de 2 MB de tamaño. Cuando miro en el Monitor de Servidor en la vista de detalles de la página de Memoria para Hilos Activos, parece que mi CFC guarda una copia de la consulta en la memoria a pesar de que superé la variable de consulta y la variable salió del alcance al final de la función. Además, tengo una copia de la consulta en la memoria en mi hilo. Así que me quedan lo que parecen dos copias de la consulta en la memoria. ¿Esto es realmente lo que está pasando? Si es así, ¿cómo puedo eliminar una copia de la consulta de la memoria?
¿alguna vez podría publicar su código gc() en alguna parte? Me encantaría ver tu enfoque. – Antony
Mi código de recolección de basura está en http://www.fluentincode.com/2010/03/garbage-collection-in-coldfusion.html – stomcavage