Ir al contenido



Foto

Problema de memoria.


  • Por favor identifícate para responder
3 respuestas en este tema

#1 cannabis

cannabis

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 250 mensajes
  • LocationMéxico

Escrito 09 marzo 2017 - 08:32

Hola, foreros.
 
El problema es el aumento de memoria en un programa D7 / Firebird 2.5
 
 
1) En el formulario A se pulsa un botón que abre el formulario B.
2) Al abrir el formulario B, se crean dos queries y una tabla temporal (TRxMemoryData de RxLIb) con sus respectivos DataSource.
3) Al cerrar el formulario B, se cierran y destruyen los queries, la tabla temporal y los DataSource:
         query1.close;
         query1.free;
         datasource1.free;
 
Utilizo una función, que encontré en internet, para revisar la memoria, antes y después de abrir el formulario B. Cada vez que se cierra el formulario B, el uso de memoria aumenta.
Esto hace que, después de varias veces de abrir el formulario B, se produzca un error de memoria:
 

Violación de acceso en la dirección 00000000. Leer de dirección 00000000



delphi
  1. function CurrentProcessMemory: Cardinal;
  2. var
  3.   MemCounters: TProcessMemoryCounters;
  4. begin
  5.   MemCounters.cb := SizeOf(MemCounters);
  6.   if GetProcessMemoryInfo(GetCurrentProcess,
  7.       @MemCounters,
  8.       SizeOf(MemCounters)) then
  9.     Result := MemCounters.WorkingSetSize
  10.   else
  11.     RaiseLastOSError;
  12. end;

¿Qué puede estar causando el aumento de uso de memoria?
 
 

Hasta pronto.
  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.160 mensajes
  • LocationRepública Dominicana

Escrito 10 marzo 2017 - 07:07

¿Algún otro objeto creado que no se haya liberado correctamente en el formulario B?, aparte del query1 y datasource1, ó, el formulario B no se libera correctamente.


  • 0

#3 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 753 mensajes
  • LocationArgentina

Escrito 10 marzo 2017 - 10:52

Sin el código solo podemos adivinar
  • 0

#4 FerCastro

FerCastro

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 613 mensajes
  • LocationCiudad de México

Escrito 14 marzo 2017 - 11:16

Hola, foreros.
 
El problema es el aumento de memoria en un programa D7 / Firebird 2.5
 
 
1) En el formulario A se pulsa un botón que abre el formulario B.
2) Al abrir el formulario B, se crean dos queries y una tabla temporal (TRxMemoryData de RxLIb) con sus respectivos DataSource.
3) Al cerrar el formulario B, se cierran y destruyen los queries, la tabla temporal y los DataSource:
         query1.close;
         query1.free;
         datasource1.free;
 
Utilizo una función, que encontré en internet, para revisar la memoria, antes y después de abrir el formulario B. Cada vez que se cierra el formulario B, el uso de memoria aumenta.
Esto hace que, después de varias veces de abrir el formulario B, se produzca un error de memoria:
 
 


delphi
  1. function CurrentProcessMemory: Cardinal;
  2. var
  3.   MemCounters: TProcessMemoryCounters;
  4. begin
  5.   MemCounters.cb := SizeOf(MemCounters);
  6.   if GetProcessMemoryInfo(GetCurrentProcess,
  7.       @MemCounters,
  8.       SizeOf(MemCounters)) then
  9.     Result := MemCounters.WorkingSetSize
  10.   else
  11.     RaiseLastOSError;
  12. end;

¿Qué puede estar causando el aumento de uso de memoria?
 
 

Hasta pronto.

 

 

 

 

PROBLEMA DE MEMORIA Y TE HACES LLAMAR CANNABIS??

 

Compañero, no le busques, se me hace que abusas de los 2 gramos diarios autorizados por San Mapache Arcángel...

 

 

jajajaja!!

 

Saludos ,y no la fumes si no compares.


  • 0