Problema con memoria

Gracias por tu tiempo. Desarrolle una aplicación (VB6) que monitorea servidores a través de la red. Realiza muchas llamadas a ODBC y llamadas a la API.
Pero la aplicación consume mucha memoria y después de un tiempo se acaba por completo la memoria (256 Mb). Creí que era por el odbc guarde todo en un arreglo y lo escribí al final y aun así no funciona o sea que creo que es por las llamadas a la API. ¿Sabes cómo puedo controlar esto? ¿Lo único que hago es llamar funciones externas como controlo el consumo de memoria?

1 Respuesta

Respuesta
1
Ufffffff. Solo con esos datos...
A ver. Prueba para empezar asegurándote que todo recordset que abras en tus conexiones a los servidores lo dejes bien cerrado (tienen un método que es close) cuando termines de usarlos.
Las llamadas a las funciones externas dependen más de que hagas con lo que te devuelven. Si te devuelven un Objeto, hasta que no lo destruyas no desaparecerá de memoria...
Por otro lado, prueba aumentar la memoria virtual, y ejecutar el programa en depueracion con el administrador de tareas de windows abierto para poder seguir el control de la memoria que usa el proceso.
Si se te agota en el administrador, genera memoria virtual desde el administrador de windows, en el menú de sistema. Si no se agota, puede ser un problema de los arrays de VB. Entonces tendrás que ver en que array te falla la aplicación y substituirlo por una lista enlazada o por una colleccion.
Bueno, ya me dirás.
Gracias, como te comente removí las operaciones de ODBC al final y aun así no libera memoria, no creo que aumentar la memoria sea la solución, ya que empieza con 4 megas y termina con los 256. En este momento lo que hice fue crear otro programa que llama a este y lo termina cada determinado tiempo, funciona, pero no me gustaría dejarlo así. Todos los recordset los cierro e incluso los mando a nothing. Solamente uso una sola conexión.
De todas formas gracias por tu respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas