Clipper On Line • Ver Tópico - Meu sistema em clipper esta consumindo muito CPU no serv2003
Página 1 de 1

Meu sistema em clipper esta consumindo muito CPU no serv2003

MensagemEnviado: 23 Jul 2015 16:47
por romulobonnadio
Boa tarde amigos.
Meu sistema em clipper esta consumindo muito CPU no serv2003, e como utilizo acesso TS com5 usuarios no Windows Server2003 nao posso trocar o sistema operacional por outro, o que posso fazer para que o sistema nao sobrecarregue o CPU qdo for executado?
Eh so abrir meu sistema que o CPU vai la para cima :/
Obg amigos!

Meu sistema em clipper esta consumindo muito CPU no serv2003

MensagemEnviado: 23 Jul 2015 17:00
por Kapiaba
Quantos GB tem o pente de memória do micro com Windows Server(TS)? abs.

Meu sistema em clipper esta consumindo muito CPU no serv2003

MensagemEnviado: 23 Jul 2015 17:05
por romulobonnadio
Esta usando 4GB mas o server2003 32bits nao chega a reconhecer isso tudo!
Mesmo assim eu me lembro de antigamente usar um programa para auxiliar o gerenciamento de memoria do windows XP que chamava TAME, mas nao tenho mais essa instalacao com o crack!
Acho que ele ajudaria!

Meu sistema em clipper esta consumindo muito CPU no serv2003

MensagemEnviado: 23 Jul 2015 19:57
por JoséQuintas
Não tem nada a ver com memória.

Mesmo com o programa aparentemente parado vai pra 100%.
Isso é porque o Clipper fica testando teclado/mouse o tempo todo.

Tem acesso aos fontes?
Teria que recompilar usando, por exemplo, OSLIB.

Meu sistema em clipper esta consumindo muito CPU no serv2003

MensagemEnviado: 05 Ago 2015 00:20
por romulobonnadio
Oi sr Jose Quintas.
Tenho acesso aos fontes sim.
Poderia me auxiliar no que deve ser feito para melhorar este uso do CPU?
Obrigado

Meu sistema em clipper esta consumindo muito CPU no serv2003

MensagemEnviado: 05 Ago 2015 07:42
por JoséQuintas
O que sempre usei no Clipper foi a OSLIB.
Só acrescentar no programa principal a linha
OL_AutoYield(.T.)


E acrescentar essa LIB na linquedição.

Meu sistema em clipper esta consumindo muito CPU no serv2003

MensagemEnviado: 15 Ago 2015 17:10
por romulobonnadio
Obg Sr Jose Quintas pela dica, fui verificar e ja contem essa chamada nos fontes :/
Queria saber se teria algo mais a fazer para melhorar ainda mais a performance.
De qq forma muito obrigado pela atencao.

Meu sistema em clipper esta consumindo muito CPU no serv2003

MensagemEnviado: 15 Ago 2015 17:46
por JoséQuintas
Para liberar ao máximo com OSLIB, teria que substituir todos os Inkey() por MyInkey()

FUNCTION MyInkey( nTempo )
   nKey := 0
   DO WHILE nKey == 0
      nKey := Inkey()
      OL_Yeld()
   ENDDO
   RETURN nKey


Esse é só um exemplo, que só atende Inkey(0), teria que ajustar pra o caso de usar por exemplo Inkey(60), ou até inkey() em alguns casos.

O que isso altera?
Enquanto está esperando por uma tecla, libera a CPU ao máximo, chegando a 0% de consumo no Windows.

Tem as partes normalmente não disponíveis no fonte, como READ, MENU TO, MemoEdit().
Essas rotinas também usam Inkey(), e teriam que ser modificadas.

E se usa biblioteca pra mouse, é outra a ser modificada.

Talvez seja interessante tentar compilar com o Harbour, de repente pode ser menos trabalhoso.

Nota:
No Windows também dá pra definir uma prioridade para o programa.
Talvez reduzir a prioridade do aplicativo em Clipper ajude um pouco, sem fazer nenhuma outra alteração.

Nota2:
OL_AutoYield(.T.) é pra fazer automático
OL_Yield() libera a cada chamada dessa função, como a rotina acima vai ficar sempre chamando por ela, vai liberar ao máximo.

Meu sistema em clipper esta consumindo muito CPU no serv2003

MensagemEnviado: 01 Set 2015 23:53
por romulobonnadio
Obg Sr Jose Quintas, essas dicas eu ja tinha realizado um bom tempo atras, mas acredito que seja o windows do cliente ele usa um server2003 32bits, o engracado eh que outros clientes tb usam e funciona bem rapidinho, mas nesse cliente nao sei o que poderia ser.
Sobre o Harbor eu ate tentei compilar nele mas nao consigo,talvez por nao ter conhecimento necessario dele, atualmente estou usando o blinker.
De qq forma obg pelas dicas :D

Meu sistema em clipper esta consumindo muito CPU no serv2003

MensagemEnviado: 25 Jul 2017 13:50
por Abel
Problemas com Inkey()=0 lento no harbour,

troque inkey()=0 por inkey(0.01)=0

Att
ABEL

Meu sistema em clipper esta consumindo muito CPU no serv2003

MensagemEnviado: 25 Jul 2017 15:58
por MSDN
Romulo,

Se você já tentou usar o Harbour e não teve sucesso, talvez o exemplo que está nessa postagem do fórum lhe ajude :

viewtopic.php?f=1&t=18275

Abraços