Usar processamento 8 Nucleos

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Usar processamento 8 Nucleos

Mensagem por janio »

Ola a todos,

A questao do DoEvents eh saber a frequencia do chamamento da função. aSimoes, ao que parece chama a função a cada skip.

Em um processamento de 80 mil registros, devo chamar DoEvents a cada registro?

Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Usar processamento 8 Nucleos

Mensagem por JoséQuintas »

É pra usar somente aonde necessário, aonde não houver outra alternativa, e sem abuso.

Lembra do Clipper? 100% de CPU?
Pois é, uma das opções era a OSLIB, e fazer chamadas a OL_Yield().
Isso liberava tempo para o Windows fazer outras coisas.
Quanto mais tempo liberado para o Windows, menos tempo liberado para o Clipper.

Programação não é roupa, não tem que acompanhar a moda.

Lógico, é só fazer como a gente costumar fazer:
É fazer um teste em determinada rotina que pode precisar disso e ver o que acontece.
Lembrando que o tradicional sempre funciona, e faz parte do Harbour.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

Usar processamento 8 Nucleos

Mensagem por Claudio Soto »

Sería deseable llamar DoEvens en cada skip.
No existe límites en el número de llamados, lo importante es que la cola de mensajes de Windows no se atasque. Si la cola de mensajes esta vacía DoEvents no hace nada porque PeekMessage retorna 0 y se termina el while de DoEvents
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Usar processamento 8 Nucleos

Mensagem por JoséQuintas »

É que o VB6 também tem um DoEvents(), que é para que outras tarefas sejam efetuadas.
O próprio nome DO EVENTS, parece estar relacionado a "execute eventos".
Por isso achei que se tratava da mesma coisa, igual ao usado no Clipper pra não consumir 100% de CPU.

Pelo que entendi, os eventos do Windows são como se fossem o KEYBOARD do Harbour, mas sempre acumulando o que deve ser feito.
Se essas pendências se acumularem demais, o Windows acaba considerando que travou.
Nesse caso, esse DoEvents() foi criado foi pra desprezar essas pendências, e não tem nada a ver com o DoEvents() do VB, ou OL_Yield() da OSLIB pra evitar 100% de CPU.

Então seria considerar que os eventos serão perdidos ao chamar DoEvents(), na hora de decidir em que rotina colocar.

.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder