Visual Basic.NET - Problemas con la memoria

   
Vista:

Problemas con la memoria

Publicado por Juan Pablo (17 intervenciones) el 17/05/2010 18:57:00
Hola: vengo colocando notas desde hace tiempo y no puedo encontrar la solucion, aunque he podido encontrar mucha informacion de ayuda que a alguien le pueda servir.
Mi problema es que el programa que hice no libera la memoria, es decir que comienza la ejecucion (es un programa que realiza la migracion de la BD) y comineza a leer datos y enviar consultas sql a un dervidor de bd.
Estuve investigando y vi como funciona el garbage collector, entiendo que no es bueno forzar su ejecucion y que cuando el sistema no tiene lugar, ejecuta el GC para que libere memoria.
El problema es que las variables declaradas en las funciones que utilizo, no liberan memoria, y por ende el uso de la memoria crece y crece.
Algo muy raro es que en el administrador de tareas no se ve reflejado que el programa tenga asignada toda esa memoria (esta en los 60 MB) pero el mismo administrador de tareas me muestra en la parte grafica de historial de "uso de PF" el incremento de la memoria.
Alguien puede decirme como ASEGURARME de liberar TODA la memoria asignada durante una funcion al cerrar la misma???
Aqui les dejo un link a una pagina que me fue de mucha ayuda para entender el GC.

http://diegumzone.spaces.live.com/blog/cns!1AD5096D63670065!1401.entry

Saludos
Juan
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas con la memoria

Publicado por OliBeer (391 intervenciones) el 18/05/2010 16:56:36
Hola,

Pues estaría bien si pusieras algo de código, para echarle un ojo, a lo mejor el problema está por ahí...

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con la memoria

Publicado por Juan Pablo (17 intervenciones) el 19/05/2010 15:04:27
Hola: El codigo que utilizo es muy grande y complejo para que se pueda entender aqui copiando solo una fraccion.
A grandes rasgos trabaja de esta manera

TablaOrigen=consulta que retorna la tabla origen
For each row in tablaorigen.rows
llamada a una funcion para ver si fue migrado
Si no fue migrado
Llamada a una funcion de insercion (esta funcion a su vez realiza muchas llamadas para realizar las inserciones)
fin si
Next
hay que considerar que la tabla origen tiene 300.000 registros
Gracias
Juan Pablo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar