Page 1 of 1

Antonio, limite de controles en aplicacion

Posted: Tue Jul 24, 2012 4:20 pm
by Raymundo Islas M.
Antonio, compañeros :

Existe algun limite de controles en la app ?

Hace algunos dias la app me empezo a hacer cosas raras como cerrarse de repente sin aviso alguno, despues de estar checando y probando mil cosas, descubri que si comentaba los ultimos controles que genere todo funciona correctamente, si los activo empieza a fallar.
Hubo momentos que generaba un aviso de error y decia que los handlers del sistema estaban agotados ( error 1158 ) mi pc de desarrollo es i7 con 6 gb ram

Ya intente destruir el handle de cada recordset y nada :
ors:close
ors:ActiveConnection:hObj := nil
ors := nil

Ya hice una depuracion de variables y sigue igual, de hecho casi acabo de pasar todas mis vars locales a un hash para efectos de tener 1 a 3 variables por funcion como maximo

Estoy buscando controles que no afecten o sean muy importantes para quitarlos : say, checkbox, buttons, etc

Y por ultimo, estoy pensando en dividir algunas funciones en otras mas pequeñas.

Como datos estadisticos :
- 27 prgs ( algunos son pequenos )
- 120,000 lineas de codigo entre todos
- 4,150 redefines entre todos
- 11 archivos de recursos (.rc)

Alguna sugerencia o tip por checar para tratar de corregir este detalle, ya que de alguna manera necesito agregar mas funciones a la app.

Saludos

Re: Antonio, limite de controles en aplicacion

Posted: Tue Jul 24, 2012 9:43 pm
by Antonio Linares
Raymundo,

En el control de tareas de Windows, activa las columnas para ver consumo de memoria, handles abiertos, etc por aplicación y monitoriza como se comporta la aplicación.

Posiblemente estes abriendo handles que no se cierren, más y más, hasta que llegas al límite de memoria. En 32 bits ese límite esta en torno a dos gigas y pico aunque en realidad debiera ser de 4 gigas, pero Windows no da a la aplicación toda la memoria que debiera.

Re: Antonio, limite de controles en aplicacion

Posted: Tue Jul 24, 2012 11:09 pm
by Raymundo Islas M.
Antonio,

Ok, de entrada me sale :

memoria : 80,XXX kb
Obj usuario : 9,700
Obj GDI : 5,795

Y sip, conforme me muevo en la app va incrementando de poco en poco, pero nunca disminuye o regresa al valor original. Voy a checar el codigo de tales funciones para donde esta el leak de recursos.

Aunque lo raro, es que el problema se presenta(ba) al iniciar la app.

El detalle que tengo es que cierro y abro la app constantemente, segun hago ajustes. Le voy a pedir a unos clientes que chequen el dato ya que ellos le dan uso real todo el dia.

Checo y te informo.

Gracias y saludos