![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() Hola a todos.
Situación: Desarrollé una aplicación en Delphi 7, usé Interbase 6.0 y los componentes IBX. Problema 1: La aplicación a medida que va haciendo querys, va consumiendo mas memoria y no la libera en ningun momento... Estoy un 99% seguro que en todos los casos se hace su respectivo Commit (no CommitRetaining), dejo el 1% de duda por si alguien me dice que el no hacer un Commit puede generar este problema. Problema 2: Cuando comienzan a utilizar la aplicación la velocidad de respuesta de los querys es normal, pero con el uso los usuarios notan que los tiempos de respuesta son larguisimos hasta llegar a hacer imposible de usar la aplicación.. Lei otro thread con un problema similar, pero en mi caso el servidor tiene un (1) solo procesador, alguien tiene alguna idea de cual puede ser el problema ?? Gracias de antemano. |
#2
|
|||
|
|||
No lo se, pero un detalle, si abres muchos formularios, ¿liberas memoria al cerrarlo?, es decir, si el formulario lo muestras con show, es decir en forma no modal, al cerrarlo, en el evento formclose le pones: Action:=caFree; y si lo presentas en forma modal ¿lo cierras con free?
|
#3
|
|||
|
|||
Cita:
El tema pasa exclusivamente por los querys, es mas, los querys que uso los uso en el main form, sin abrir ningun otro form. Gracias de todas formas. Alguna otra solución ?? |
#4
|
|||
|
|||
Alguien que me de una mano ??
Es posible que se tome memoria y no se libere por algun bug de Interbase o los IBX ? |
#5
|
||||
|
||||
ok
Que Versión de IBX usas? te recomiendo usar FireBird la última versión 1.52....
Saludos.... |
#6
|
||||
|
||||
Deberías dar más detalle para ponernos en situación.
Qué componentes query usas?, qué hacen exactamente esos querys?, qué propiedades y valores tienen?, has modificado alguna de las que traen por defecto?... en fin, da los máximos detalles posibles.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#7
|
|||
|
|||
Uso la version 7.04 de los IBX.
Los componentes que uso para hacer querys son los TIBSQL y los TIBQuery y para los Store Procedure los TIBStoreProcedure. El TIBTransaction esta en Read Committed. El resto de los componentes tiene sus propiedades sin modificar. Los querys hacen varias cosas. Puntualmente me centré en un Query para probar...lo único que hace este Query es traer X cantidad de registros (5000 mas o menos). Ejecuto este Query, me trae los resultado, lo ejecuto, me trae los resultados...etc..etc... Luego de cada ejecución me incrementa la memoria que ocupa el programa en 12K....y nunca la libera. Alguna idea ? Última edición por 1111111 fecha: 10-06-2005 a las 17:54:55. Razón: Error de ortografia |
#8
|
||||
|
||||
Por ir descartando cosas, prueba a liberar memoria inactiva
Otra cosa que puedes hacer es eliminar los componentes y crearlos de nuevo, por si acaso. También puedes crear un proyecto nuevo y poner únicamente lo mínimo necesario para hacer esa prueba y ver qué resultados te dá. Aunque los componentes IBX tienen un pequeño problema por la forma en que tiene implementado la gestión de memoria, en este caso creo que no te afecta porque 5000 registros son muy pocos. Imagino que habrás comprobado que realmente el "culpable" es el query, no vaya a ser por ejemplo que sea el form que no se libere o algo así
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#9
|
||||
|
||||
![]() Cita:
Podes descargarlos del codecentral, específicamente en la página de Jeff Overcash, autor de la biblioteca. Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#10
|
|||
|
|||
![]() Hola amigo delphilero!!
Hace poco se me presento por lo que entiendo, el mismo problema. Lo solucioné colocando la propiedad Unidirectional="True". Claro que el propósito mío solo era ejecutar actualizaciones y consultas a la base de datos, sin tener que navegar por los datos que regresaba la consulta. Espero que te sirva!! Por otro quisiera saber si conoces a alguien que conozca la forma de saber que registro de una tabla se encuentra bloqueada por alguna transacción. Gracias !! |
#11
|
|||
|
|||
Hola,
comentas que solo lun procesador, pero si se ejecuta sobre win xp, este emula dos procesadores, y creo que lo tienes que inhabilitar de placa. Nosotros hemos tenido problemas simililares, y se han solucionado poniendo firebird 1.5 saludos |
#12
|
|||
|
|||
Cita:
|
![]() |
|
|
![]() |
|