Características da linguagem mql5, subtilezas e técnicas - página 91

 
Alexey Navoykov:

Por que não calcular GetTickCount da mesma forma? Então o problema de resolução de 15 ms, que é problemático, vai desaparecer.

Porque é uma função com funcionalidade e velocidade de execução claramente descritas.

Se você quiser medir com precisão períodos curtos de tempo, use um timer de microssegundo. Se você quer precisão até 16 ms, você deve usar um timer de milissegundos mais rápido.

 
Renat Fatkhullin:

Porque é uma função com funcionalidade e velocidade de execução claramente descritas.

A velocidade de execução está descrita algures? Não vi isso na sua documentação. E como é que a minha sugestão afecta a funcionalidade? Limitar a resolução a 15ms é uma funcionalidade? Parece ser uma desvantagem. Uma medida forçada, por que importar desvantagens quando você pode evitá-las usando uma solução mais eficiente.

Se você quiser medir com precisão períodos curtos de tempo, use um timer de microssegundo. Se você quiser precisão de até 16ms, então use um temporizador mais rápido de milissegundos.

Você pode ter perdido as últimas páginas que diziam que seu timer de microssegundo não é adequado para o propósito, é problemático usá-lo para medir intervalos, pois ele está bloqueado para a hora local do computador, ao contrário do PerfomanceCounter nativo que citei como exemplo.

 
Alexey Navoykov:

Você provavelmente não leu cuidadosamente as últimas páginas, onde diz que seu timer de microssegundo não é adequado para o propósito. É problemático para a medição do tempo porque está ligado ao tempo do computador local, ao contrário do PerfomanceCounter padrão, que é o exemplo que eu dei a você.

De onde você tirou o plug-in?

GetMicrosecondCount utiliza o QueryPerformanceCounter.

Meça a diferença entre dois valores obtidos com GetMicrosecondCount e você não dependerá de nenhum valor inicial ou de truques de mudança de horário local.

 
Alexey Navoykov:

A velocidade de execução está descrita algures? Não vi isso na sua documentação. E como é que a minha sugestão afecta a funcionalidade? Limitar a resolução a 15ms é uma funcionalidade? Parece ser uma desvantagem. Uma medida forçada. Por que importar desvantagens quando você pode evitá-las usando uma solução mais eficiente.

Você provavelmente não leu as últimas páginas cuidadosamente, onde a questão é que o seu temporizador de microssegundos não cumpre o propósito declarado. É problemático usá-lo para medir intervalos porque está ligado à hora local do computador, ao contrário do contador de desempenho normal que eu dei como exemplo.

Preste atenção que é você que faz perguntas, não eu.

Então você não conhece o assunto. Sei-o muito bem e respondo-te, mas de alguma forma esqueces a tua ignorância e até a exiges.
 
Slava:

Meça a diferença entre os dois valores GetMicrosecondCount e você não dependerá nem do valor inicial nem do foco de mudança da hora local.

Se a hora local for alterada entre duas GetMicrosecondCounts, a sua diferença mostrará algo diferente.

 
fxsaber:

Se a hora local for alterada entre as duas GetMicrosecondCounts, a diferença entre elas mostrará algo diferente.

SSZB.

 
Renat Fatkhullin:

SSZB.

:)

 
Renat Fatkhullin:

PRSB.

Explique isto aos Compradores do Mercado.

 
Conversa muito construtiva )
 
fxsaber:

Explique isto aos compradores do mercado.

Qual é a probabilidade de o tempo do computador local mudar entre duas chamadas para GetMicrosecondsCount usadas para medir o tempo em microssegundos?