CPU al 100%

Post Reply
User avatar
Andrés González
Posts: 625
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

CPU al 100%

Post 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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post 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() ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Andrés González
Posts: 625
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Post 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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Andrés,

La ventana oWndEdit es una ventana MDI child ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Andrés González
Posts: 625
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Post 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

User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post 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.)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Andrés González
Posts: 625
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Post 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
Post Reply