FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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? |
#2
|
||||
|
||||
¡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 |
#3
|
||||
|
||||
Cita:
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!!
__________________
:) Última edición por DarkByte fecha: 22-04-2004 a las 08:07:39. |
#4
|
||||
|
||||
Cita:
|
#5
|
||||
|
||||
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.
__________________
Guía de Estilo de los Foros Cita:
|
#6
|
||||
|
||||
pues según mi servidor local... no...
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#7
|
||||
|
||||
Cita:
__________________
:) |
#8
|
|||
|
|||
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 , el ejecutable en disco ocupa 830KB (que igual me parece mucho ). 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 |
#9
|
||||
|
||||
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.
__________________
:) |
#10
|
|||
|
|||
Bueno, está bien pero no me decis que puede ser...
Espero ideas. Gracias |
#11
|
||||
|
||||
¿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.
__________________
Guía de Estilo de los Foros Cita:
|
#12
|
|||
|
|||
Paso a dar los detalles del pequeño programa en su concepción y gran ocupador de memoria en su ejecución
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 Espero sugerencias Osvaldo |
#13
|
||||
|
||||
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; Saludos y espero tu respuesta. |
#14
|
|||
|
|||
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. |
#15
|
||||
|
||||
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 |
#17
|
|||
|
|||
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. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|