Bibliotecas: AccurateTimer

 

AccurateTimer:

Aumento da precisão do temporizador.

Autor: fxsaber

 
E você não recebe nenhum erro durante o trabalho? Você já tentou testar em sistemas fracos (netbooks, por exemplo)?
 
Andrey Khatimlianskii:
E você não recebe nenhum erro durante o trabalho? Você já tentou testar em sistemas fracos (netbooks, por exemplo)?

Nunca encontrei esse erro. Terei que tentar em um netbook.

 
fxsaber:

Nunca encontrei esse erro antes. Terei que experimentá-lo em meu netbook.

Já tive esse problema algumas vezes em um servidor alugado pela Hetzner.

A dica foi que a recriação periódica do cronômetro é uma fonte de possíveis falhas.

 
Andrey Khatimlianskii:

Isso já aconteceu algumas vezes em um servidor alugado pela Hetzner.

A implicação era que a recriação periódica do cronômetro era uma fonte de possíveis falhas.

Entendi, obrigado! Não há seguro contra esse bug, é claro. Talvez os desenvolvedores o consertem.

 
fxsaber:

Entendi, obrigado! Não há seguro contra esse bug, é claro. Talvez os desenvolvedores o consertem.

A julgar pela referência de @Slava à descrição dos erros do sistema - improvável =(

 
Andrey Khatimlianskii:

A julgar pela referência de @Slava à descrição dos erros do sistema - improvável =(

Slava já lhe disse sua opinião negativa. Mas fxsaber não acredita nisso

 
Rashid Umarov:

Glory já lhe disse sua opinião negativa. Mas fxsaber não acredita nisso

Talvez eu tenha perdido alguma coisa. Você poderia repetir?

 
Automated-Trading:

AccurateTimer:

Autor: fxsaber

Obviamente, o GetMicrosecondCount e o EventSetTimer usam fontes de tempo diferentes e estão fadados a divergir porque contam tempos diferentes.

Tentar sincronizá-los é algo errado :-)

 
Maxim Kuznetsov:

GetMicrosecondCount e EventSetTimer obviamente usam fontes de tempo diferentes e devem divergir porque contam tempos diferentes.

Tentar sincronizá-los é algo errado :-)

Coloque um segundo cronômetro em 00:00:00:00. E veja qual será o horário após a 300ª chamada do OnTimer. Acredite em mim, você não verá 00:05:00 (cinco minutos exatos). Não haverá essa discrepância com a biblioteca.

 
fxsaber:

Defina o segundo cronômetro para 00:00:00:00. E veja qual será o horário após a 300ª chamada do OnTimer. Acredite em mim, você não verá 00:05:00. Não haverá essa discrepância com a biblioteca.

Ah, que homem mais teimoso e denso :-)

GetMicrosecondTimer é usado para criação de perfis, medições de desempenho e pequenos atrasos em ciclos. Obviamente, ele usa o tempo contábil de um processo ou de uma trilha para essa finalidade (os desenvolvedores podem especificar, mas por quê?).

O EventSetTimer usa o tempo monotônico ou real (o primeiro é mais provável) e chama o OnTimer de uma forma ou de outra quando o timer faz ticks. Para esse fim, ele usa descritores do sistema, o que causa alguns problemas, pois o cronômetro pode simplesmente não iniciar por meio do EventSetTimer.

Todos os itens acima são temporizadores diferentes. Em um computador carregado, as diferenças serão significativas e naturais