Clipper On Line • Ver Tópico - clipper 5.2b+exspace 1.0g x clipper 5.2e+blinker7

clipper 5.2b+exspace 1.0g x clipper 5.2e+blinker7

Discussão sobre a linguagem CA-Clipper.

Moderador: Moderadores

 

clipper 5.2b+exspace 1.0g x clipper 5.2e+blinker7

Mensagempor aprendiz_ce » 08 Fev 2017 14:21

José Quintas,

Acho que o link anterior deveria está com problemas pela manhã, pois ainda pouco consegui baixar o OS_Lib e também acessei todo o conteúdo do referido site.

Resultado do teste:
Inclui logo abaixo dos meus "SETs" do sistema, o OL_AutoYield(.T.) e nada mais... compilei e executei sem erro algum. Fiquei monitorando pelo "Gerenciador de Tarefas" e percebi que o uso da CPU com o sistema em STAND BY ficou oscilando entre 1 a 28% e que anterior mente já partia dos 55%. Seria isso mesmo, ou eu apliquei a OS_LIB de forma errada? Monitorei em alguns "LOOP" e "INDEX", mas não vi mudança muito expressiva se comparo sem o uso do OS_LIB.
Sucesso é a soma de pequenos esforços, repetidos o tempo todo.
Avatar de usuário

aprendiz_ce
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 147
Data de registro: 21 Jul 2011 10:05
Cidade/Estado: Fortaleza/CE
Curtiu: 0 vez
Mens.Curtidas: 7 vezes

clipper 5.2b+exspace 1.0g x clipper 5.2e+blinker7

Mensagempor JoséQuintas » 08 Fev 2017 15:48

Sim, isso mesmo.
O modo automático reduz aonde possivel, procurando não deixar lento nem o aplicativo e nem o Windows.

Pra melhorar mais, pode incluir chamadas a OL_Yield() em pontos estratégicos, aonde tem certeza que vai ficar aguardando.
Programas Windows também tem algo assim.

Só fazer um módulo de teste e vai ver a diferença.

PROCEDURE Main
   DO WHILE Inkey() != 27
        OL_Yield()
   ENDDO
   RETURN


O consumo fica em ZERO.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

clipper 5.2b+exspace 1.0g x clipper 5.2e+blinker7

Mensagempor JoséQuintas » 08 Fev 2017 15:50

Em bloqueios de registro:

DO WHILE ! Rlock()
   Inkey(0.5)
   OL_Yield()
ENDDO


E outros lugares mais.

Liberando tempo para o Windows, ele tem tempo de conversar com servidor, ler disco, gravar disco, bloquear, etc. etc.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

clipper 5.2b+exspace 1.0g x clipper 5.2e+blinker7

Mensagempor aprendiz_ce » 09 Fev 2017 13:26

Boa tarde, Josè Quintas.

Ainda bem que eu acertei no uso da OS_LIB. Agora, com essas suas orientações finais, a coisa vai ficar melhor ainda. Confesso que fiquei surpreso com essa LIB, pois funciona mesmo e acaba dando um "Upgrade" no desempenho do EXE.

Muitíssimo obrigado pela sua colaboração.

Forte abraço!

P.S.: Notei que o EXE ficou com 1/3 do tamanho se comparado quando ele era compilado com Exospace. Muito bacana!
Sucesso é a soma de pequenos esforços, repetidos o tempo todo.
Avatar de usuário

aprendiz_ce
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 147
Data de registro: 21 Jul 2011 10:05
Cidade/Estado: Fortaleza/CE
Curtiu: 0 vez
Mens.Curtidas: 7 vezes

clipper 5.2b+exspace 1.0g x clipper 5.2e+blinker7

Mensagempor JoséQuintas » 09 Fev 2017 17:33

Mas e quanto ao problema de reindexação?
Ou no final tinha a ver com liberar tempo ao Windows?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

clipper 5.2b+exspace 1.0g x clipper 5.2e+blinker7

Mensagempor aprendiz_ce » 11 Fev 2017 12:04

Olá Josè Quintas, bom dia.

Foi até bom você ter perguntado!

Para ser sincero, no momento está 100%. Mas acho que o conjunto das ações melhorou o desempenho desse ERP, e como isso, consegui que a indexação e o tempo de Windows ficassem a contento.

Comentário:
Notei uma coisa estranha. Quando usei o OS_LIB pela primeira vez e monitorei o uso de recursos do PC/CPU, percebi uma redução significativa, só que agora, ao refazer o mesmo monitoramento, o uso de recursos voltou aos 50%, e isso monitorando somente com o ERP em execução, nada além dele. O que pode ser? Quando inicio o monitorando o mesmo inicia em 1% e quando carrego o ERP o mesmo dispara para 50%.

Grato pela sua atenção e aguardo o seu comentário.
Sucesso é a soma de pequenos esforços, repetidos o tempo todo.
Avatar de usuário

aprendiz_ce
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 147
Data de registro: 21 Jul 2011 10:05
Cidade/Estado: Fortaleza/CE
Curtiu: 0 vez
Mens.Curtidas: 7 vezes

clipper 5.2b+exspace 1.0g x clipper 5.2e+blinker7

Mensagempor JoséQuintas » 11 Fev 2017 21:38

Esquisito. talvez dependa do momento.
Não custa confirmar se depois dos testes acabou deixando sem OL_AutoYield( .T. ) ... rs

Aqui notava que ao mexer no mouse, já causava mudança no consumo de CPU, seja Clipper ou Windows.
Ao carregar o EXE é normal, consome mais tempo no início, ou durante algum processo, pois está trabalhando.

Se usa mouse, superlib por exemplo, é bom colocar chamadas a OL_Yield() no DO WHILE de checar mouse.
Mouse e teclado são os "vilões" de 100% de CPU.

Eu cheguei a alterar minha GETSYS e aonde possível, substituindo Inkey() por MyInkey(), principalmente onde era infinito (ZERO) ou muito tempo.
Exemplo:

FUNCTION MyInkey( nTempo )

   LOCAL nKey := 0

   IF nTempo == NIL
      OL_Yield()
     nKey := Inkey()
   ELSEIF nTempo == 0
      DO WHILE nKey == 0
         nKey := Inkey()
         OL_Yield()
      ENDDO
   ELSEIF nTempo > 0.3
     DO WHILE nKey == 0 .AND. nTempo > 0
        nKey := Inkey( 0.3 )
       nTempo -= 0.3
   ENDDO
   ELSE
     OL_Yield()
      nKey := Inkey( nTempo )
   ENDIF
   RETURN nKey
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

clipper 5.2b+exspace 1.0g x clipper 5.2e+blinker7

Mensagempor aprendiz_ce » 14 Fev 2017 11:46

JoséQuintas escreveu:Esquisito. talvez dependa do momento.
Não custa confirmar se depois dos testes acabou deixando sem OL_AutoYield( .T. ) ... rs

Aqui notava que ao mexer no mouse, já causava mudança no consumo de CPU, seja Clipper ou Windows.
Ao carregar o EXE é normal, consome mais tempo no início, ou durante algum processo, pois está trabalhando.

Se usa mouse, superlib por exemplo, é bom colocar chamadas a OL_Yield() no DO WHILE de checar mouse.
Mouse e teclado são os "vilões" de 100% de CPU.

Eu cheguei a alterar minha GETSYS e aonde possível, substituindo Inkey() por MyInkey(), principalmente onde era infinito (ZERO) ou muito tempo.
Exemplo:

FUNCTION MyInkey( nTempo )

   LOCAL nKey := 0

   IF nTempo == NIL
      OL_Yield()
     nKey := Inkey()
   ELSEIF nTempo == 0
      DO WHILE nKey == 0
         nKey := Inkey()
         OL_Yield()
      ENDDO
   ELSEIF nTempo > 0.3
     DO WHILE nKey == 0 .AND. nTempo > 0
        nKey := Inkey( 0.3 )
       nTempo -= 0.3
   ENDDO
   ELSE
     OL_Yield()
      nKey := Inkey( nTempo )
   ENDIF
   RETURN nKey


Pois é, muito estranho!

Eu fiz o teste com o "OL_AutoYield( .T. )", e isso eu tenho certeza, pois conferi no fonte e compilei os PRGs logo em seguida.

Sobre o uso de mouse... eu não uso! Pra ser mais especifico, não uso nada além do próprio Clipper (puro). A única coisa que inclui de novo foi esse OS_LIB que passei a usar agora.
Sucesso é a soma de pequenos esforços, repetidos o tempo todo.
Avatar de usuário

aprendiz_ce
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 147
Data de registro: 21 Jul 2011 10:05
Cidade/Estado: Fortaleza/CE
Curtiu: 0 vez
Mens.Curtidas: 7 vezes

Anterior



Retornar para CA-Clipper

Quem está online

Usuários vendo este fórum: Google [Bot] e 6 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro