Como vaciar la memoria

27/12/2006 - 11:48 por Diegoc | Informe spam
Buenos dias,
Estoy haciendo un proceso muy muy largo, de cierre de historicos de una
base de datos. El caso es que llamo a objetos anidados y luego tengo
que irlos quitando de memoria.
Hago lo siguiente:
Todos los objetos los he creado con un dispose() donde vacio los datos
que poseen y lo ejecuto al terminar. Tras esto, igualo el objeto a null
( no se si esto vale para algo)
Pese a todo, la memoria sigue subiendo, no muy rapido, pero teniendo en
cuenta que el proceso durará varios dias, puede saturarme el servidor.
Mis preguntas son:
Cuando se crea una variable dentro de una funcion, cuando se termina la
funcion, ¿es necesario hacer algo con esa variable?
funtion xxx()
{
DataTable dt.
...
dt.Dispose(); ??
dt=null; ??
}

Si tengo una variable que se refiere a un objeto creado por mi, y le
asigno un nuevo valor, debo primero hacer un dispose de la variable?

De donde puedo rascar la memoria que todavía sigue asignadose y que no
se me ocurre de donde puede salir?
Los string tambien hay que igualarlos a null?

Muchas gracias
Diego
 

Leer las respuestas

#1 Bela Istok
27/12/2006 - 20:08 | Informe spam
Ok vamos por parte:
1.- Las variables que se crean dentro de una función mueren cuando esa
función se termina.
2.- Al momento de no tener una referencia, el garbage colector deberia
encargarse de ella.
3.- Verifica bien las asignaciones de memoria a ver si son ciclicas, si cada
x cantidad de tiempo te incrementa un x %, entonces tienes que revisar muy
bien el codigo que estas ejecutando, porque en teoria, si vas creando y
destruyendo objetos, la memoria deberia mantenerse constante.

Saludos,

Bela Istok
"Diegoc" wrote in message
news:
Buenos dias,
Estoy haciendo un proceso muy muy largo, de cierre de historicos de una
base de datos. El caso es que llamo a objetos anidados y luego tengo
que irlos quitando de memoria.
Hago lo siguiente:
Todos los objetos los he creado con un dispose() donde vacio los datos
que poseen y lo ejecuto al terminar. Tras esto, igualo el objeto a null
( no se si esto vale para algo)
Pese a todo, la memoria sigue subiendo, no muy rapido, pero teniendo en
cuenta que el proceso durará varios dias, puede saturarme el servidor.
Mis preguntas son:
Cuando se crea una variable dentro de una funcion, cuando se termina la
funcion, ¿es necesario hacer algo con esa variable?
funtion xxx()
{
DataTable dt.
...
dt.Dispose(); ??
dt=null; ??
}

Si tengo una variable que se refiere a un objeto creado por mi, y le
asigno un nuevo valor, debo primero hacer un dispose de la variable?

De donde puedo rascar la memoria que todavía sigue asignadose y que no
se me ocurre de donde puede salir?
Los string tambien hay que igualarlos a null?

Muchas gracias
Diego

Preguntas similares