Page 1 of 1
CPU al 100%
Posted: Wed Jan 31, 2007 7:48 am
by Andrés González
Antonio, a que puede ser debido que cuando consulto el rendimiento tanto los programas compilados con harbour y fwh25 y los antiguos hechos con versiones mas antiguas de fw20 y clipper me de que el uso de la CPU este al 100% y no baja, osea se mantiene durante todo el uso del programa. No es que funcionen mal puesto que los programas responden rapidamente y funcionan a las mil maravillas, pero parece que en algunos ordenadores los mas antiguos su rendimiento no parece ser optimo. Seguro que es algo que puedo estar haciendo mal, pero no se me ocurre por donde empezar para mirar el problema, si es que es un problema de los programas. Se presenta el problema tanto en win2000 como en xp.
Saludos
Posted: Wed Jan 31, 2007 8:46 am
by Antonio Linares
Andrés,
Con Clipper sería algo más normal, ya que se usa la capa de wow (windows on windows) para ejecutar 16 bits en 32 bits.
Con Harbour no debería ocurrir. Usas algún bucle principal desde donde llames a SysRefresh() ?
Posted: Wed Jan 31, 2007 12:35 pm
by Andrés González
Antonio me he dado cuenta que eso solo le pasa cuando gestiono la base de datos el tcbrowse lo paro con un:
Code: Select all
ACTIVATE WINDOW oWndEdit MAXIMIZED ;
ON RESIZE oSpl:AdjRight();
VALID ( lExit:= .T. , .T. )
//? "si no sale otro mensaje me paro antes del syswait"
DO WHILE !lExit //Esto para la pantalla para que no siga y cierre la base de datos
SysWait(.1)
ENDDO
//clos_base
Puede ser esto lo que me produzca los problemas de consumo de cpu, mientras esta en modo presentacion con el menu y el bmp de inicio no hace ese fallo solo cuando ataco la base de datos
Posted: Wed Jan 31, 2007 12:57 pm
by Antonio Linares
Andrés,
La ventana oWndEdit es una ventana MDI child ?
Posted: Wed Jan 31, 2007 2:05 pm
by Andrés González
Sí, depende de la principal.
Code: Select all
DEFINE FONT oFont NAME "Ms Sans Serif" SIZE 0,-8
DEFINE WINDOW oWndEdit MDICHILD OF oWnd TITLE x_tit //Ventana child de la principal oWnd FROM 2, 2 TO 20, 50
DEFINE BUTTONBAR oBar SIZE 50,40 _3d OF oWndEdit
Posted: Wed Jan 31, 2007 7:51 pm
by Antonio Linares
Andrés,
Este código no es necesario en absoluto:
Code: Select all
DO WHILE ! lExit
SysWait(.1)
ENDDO
una ventana MDI child es siempre no modal. Dices que se cierra la base de datos, y es normal, puesto que has de cerrar la base de datos cuando se cierre la ventana y no antes:
ACTIVATE WINDOW oWndEdit VALID (DbCloseArea(), .t.)
Posted: Thu Feb 01, 2007 8:10 am
by Andrés González
Indudablemente este es el motivo, cuando quito el syswait el consumo del procesador oscila entre los 40% y el 85% pero no se posiciona como antes al 100%. El problema es que es heredado de la programcion del antiguo clipper y de esta manera me evitaba modelar mucho codigo. Voy a ver como lo soluciono.
Gracias Antonio