Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ejecutable muy grande (https://www.clubdelphi.com/foros/showthread.php?t=9331)

osvrom 21-04-2004 00:36:53

Ejecutable muy grande
 
Mi programa los que hace es levantar tres datasets y mostrarlo y 3 grillas y ocupa en memoria 4500Kaproximadamente está hecho en delphi 6 y utilizo BDE con tablas paradox, las tablas tiene menos de 100 registros.
En estas características parecería que es una miseria lo que tendría que ocupar y no es así, como podría reducir el tamaño del programa?

roman 21-04-2004 02:12:36

¡Carambolas! Sí es que es raro. Tengo aquí uno que usa 64 módulos entre formularios y módulos de datos y 32 tablas y mide 1.47 mb. ¿No estarás usando imágenes que ocupen mucho espacio?

// Saludos

DarkByte 22-04-2004 08:03:38

Cita:

Empezado por osvrom
y ocupa en memoria 4500K

¿En el disco duro o en la memoria ram?

Si como bien dice Jachguate, tu problema es de gráficos, podrías intentar reducir un poco la calidad de las imágenes.

De esto no estoy muy seguro:Podrías intentar quitar componentes que no vas a usar en tu aplicación (y que si no me equivoco, delphi te añade al ejecutable también) a través de, si no me equivoco, Project -> Options... -> Packages.

Hasta pronto!!

roman 22-04-2004 17:23:41

Cita:

Empezado por DarkByte
Si como bien dice Jachguate

:confused:

marcoszorrilla 22-04-2004 17:44:19

Yo había respondido a este hilo y creo que por un fallo del servidor se borro la respuesta, convendría saber si Jachguate según parece también lo hizo y ocurrio lo mismo.

Un saludo.

jachguate 22-04-2004 17:49:45

:rolleyes: pues según mi servidor local... no... :confused:

:D :D

Hasta luego. ;)

DarkByte 22-04-2004 21:21:53

Cita:

Empezado por roman
:confused:

Ups, sorry, acababa de leer el articulo de los procedures jach y tenía el nombre en la mente, mil disculpas román.

osvrom 23-04-2004 15:01:50

Sorry, por mi demora, andaba medio ocupado.
Mirá mi ejecutable tiene 2 imágenes que son las que trae delphi para los botones (son muy chiquititas) y un icono. Accede a una misma tabla, solo que se abre en tres datasets distintos cada uno con su propio dbgrid y la lógica es casi nada.
Ocupa en memoria, exactamente, en Windows XP con el administrador de memoria 4096 KB :eek: , el ejecutable en disco ocupa 830KB (que igual me parece mucho :confused: ).
Si quieren les subo los fuentes (es delphi 6) para que lo vean, sólo diganme a donde, o si tienen alguna solución para reducir su demanda exagerada de memoria también. :(

Gracias

DarkByte 23-04-2004 18:35:41

Entonces lo que ocupa no es memoria física, sino memoria RAM o Random Access Memory (nunca viene mal aprenderse el significado las siglas).

Me parece que, al utilizar muchos hilos de ejecución a la vez, se tiraba mucho de la memoria RAM, pero no estoy seguro.

osvrom 24-04-2004 00:28:08

Bueno, está bien pero no me decis que puede ser... :confused:
Espero ideas. Gracias

marcoszorrilla 24-04-2004 13:33:25

¿Cuántos formularios tiene tu programa?

Ten en cuenta que si por ejemplo utiliza 20 formularios, debieran de estar prácticamente todos en situación de "availables", sería un error crear todos los formularios automáticamente, sino que habría que crearlos cuando la aplicación los demande y destruirlos cuando no sean necesarios.

Bueno espero nos des más datos para ver que puede ser, en cuanto al tamaño del ejecutable es realmente pequeño por ahí no hay ningún problema.

Un Saludo.

osvrom 24-04-2004 22:37:42

Paso a dar los detalles del pequeño programa en su concepción y gran ocupador de memoria en su ejecución :D

Miren el prog tiene estas características:
* 1 y único formulario
* 3 datasets, 3 dbgrids, 3 datasource, 1 label, 1 textbox, 3 speedbuttons, 2 checkbox, ah 1 database
* 1 y única tabla paradox que no llega todavia a los 100 registros

Lo que hace el prog. es un ABM de esa tabla, permite hacer una pequeña búsqueda por dos campos. La tabla es simplemente una especie de diccionario de Inglés, tiene un campo para la palabra en ingles, otro para su significado, otra para una frase o comentario y el ultimo para la fecha de carga.
Son 3 grillas para aprovechar la resolución 1152x864 y mostrar al estilo de 3 columnas la mayor cantidad de palabras.

No tiene más que eso excepto algunas líneas de código para la lógica.
Hoy los datos del prog. son:
* en memoria 4132 KB en el adm.de tareas del XP
* en el disco 830KB

El dilema es porqué tanto memoria requerida :confused:

Espero sugerencias
Osvaldo

Lepe 25-04-2004 04:56:41

Ejecuta este procedimiento de nuestro amigo Dr. Marteens dentro de un boton para ver cuanto ocupa antes y despues de pulsarlo:

Código:

procedure LiberarMemoria;
begin
  if Win32Platform = VER_PLATFORM_WIN32_NT then
    SetProcessWorkingSetSize(GetCurrentProcess, $FFFFFFFF, $FFFFFFFF);
end;

He visto como un programa ocupando 6 megas en RAM se viene a 1.2 Megas.

Saludos y espero tu respuesta.

osvrom 26-04-2004 21:58:04

Si, efectivamente reduce el tamaño que ocupa el programa a unos 800K primero pero despues interactuando trepa muy rapido 1400-1600-2000 hasta algunas veces a 2400K, se estabiliza en el rango 2000k-2200K.
Igual 2MB me parece mucho para lo que es el programa pero reconozco que es una notable mejora.
Yo lo puse en un botón nomás pero dónde sería el lugar donde se tendría que lanzar este código? ya que al arrancar el programa sigue ocupando los 4MB.
También me gustaría saber que efectivamente hace.

roman 26-04-2004 22:12:28

Al principio yo había confundido tu pregunta con espacio en disco duro. Ahora bien, yo creo que aquí la pregunta sería: ¿tu preocupación por la memoria es porque notas algún bajo rendimiento en tu aplicación o en el sistema? Te lo pregunto porque acabo de ejecutar el sistema que mencioné al principio y bueno, el uso de memoria es de aproximadamente 5mb pero de verdad que el rendimiento del sistema no decrece en lo más mínimo.

// Saludos

Lepe 27-04-2004 11:05:37

Reholas osvrom, el otro dia tenía más a mano el código que el artículo original

Si no conocías esa web dale una vuelta para delante y otra para detrás ;), no tiene desperdicio

Saludos.

osvrom 27-04-2004 21:39:18

lastima que no funciona para win9x. la verdad que ahi es en donde van a correr estos programitas.
Gracias por tus respuestas igualmente me sirvieron. :cool:


La franja horaria es GMT +2. Ahora son las 13:16:50.

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