Ver Mensaje Individual
  #1  
Antiguo 10-11-2009
Walterdf Walterdf is offline
Miembro
 
Registrado: may 2003
Ubicación: Buenos Aires
Posts: 152
Reputación: 22
Walterdf Va por buen camino
ClientDataSet.LoadFromFile() y consumo de memoria

Buenas a todos

Estoy trabajando con una aplicación hecha en D6 y FB.
Estoy haciendo algunas pruebas con los métodos SaveToFile() y LoadFromFile() de los ClientDataSet y me doy cuenta que al hacer el Load del archivo (en cualquiera de los formatos que soporta, dfBinary, dfXML...), el incremento de memoria es demasiado.

Tengo dos ClientDataSet: cds1 y cds2.
El cds1 contiene datos provistos por un dataset y lo que hago es:
Código:
cds1.SaveToFile('c:\datos', dfBinary);
El archivo guardado contiene cerca de 15000 registros y pesa unos 2.2MB

y con el cds2, que está totalmente vacío y no está atado a ningún dataset hago lo siguiente:
Código:
cds2.LoadFromFile('c:\datos');
En cuanto me muestra los datos en un dbgrid atado al cds2, la memoria ram usada se incrementa en unos 40MB aprox.
Usando el formato dfXML, se incrementa en unos 60MB.

Porqué pasa esto? hay manera de evitar tal crecimiento o ese el precio de usar esta facilidad en vez de migrar los datos a "mano"?

Probablemente 40MB no parezca tanto pero el problema es que esta aplicacion se usara en PCs con pocos recursos de memoria.

Saludos y gracias desde ya!
Responder Con Cita