Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-11-2009
Walterdf Walterdf is offline
Miembro
 
Registrado: may 2003
Ubicación: Buenos Aires
Posts: 152
Poder: 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
  #2  
Antiguo 10-11-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Me pregunto si al momento de cargar(leer) los datos desde el archivo tu ClientDataSet ya contiene informacion...pues si es el caso creo que podrias limpiarlo(resetear los datos) antes de cargar los registros ,utilizando el metodo EmptyDataSet, mas o menos asi:
Código Delphi [-]
ClientDataSet1.EmptyDataSet;
Prueba y luego nos comentas como te fue.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #3  
Antiguo 10-11-2009
Walterdf Walterdf is offline
Miembro
 
Registrado: may 2003
Ubicación: Buenos Aires
Posts: 152
Poder: 22
Walterdf Va por buen camino
Question

Hola rgstuamigo, gracias por tu atención. Te comento:

El clientdataset que uso para cargar el archivo esta vacío. El incremento de memoria se produce al momento de lanzar el método LoadFromFile() y esto lo mido simplemente viendo el monitor de recursos del admin.de tareas de Windows.

Gracias por tu respuesta! y quedo a la espera de mas sugerencias.
Responder Con Cita
  #4  
Antiguo 06-03-2012
Gercondi Gercondi is offline
Miembro
 
Registrado: jun 2010
Posts: 12
Poder: 0
Gercondi Va por buen camino
Como resolviste?

Saludos, Que información encontraste con respecto a este problema?
Responder Con Cita
  #5  
Antiguo 07-03-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Gercondi Ver Mensaje
Saludos, Que información encontraste con respecto a este problema?
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración.

Este hilo es de hace 3 años, de todas formas, si estás leyendo un fichero a memoria, es normal que consuma memoria, dependiendo de la cantidad de datos que se lean, es lógico.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Consumo de memoria!!! Mary Carmen G. Varios 6 23-01-2009 10:02:55
Consumo excesivo de memoria del componente TWebBrowser sur-se Internet 0 21-04-2008 09:14:40
Alto consumo de memoria virtual!! Alunizator07 Varios 6 01-03-2007 21:05:34
Excesivo consumo de memoria 1111111 Firebird e Interbase 11 18-06-2005 23:08:20
Consumo de memoria Telemaco Conexión con bases de datos 0 26-10-2004 15:59:44


La franja horaria es GMT +2. Ahora son las 04:41:32.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi