Características del lenguaje mql5, sutilezas y técnicas - página 91

 
Alexey Navoykov:

¿Por qué no calcular GetTickCount de la misma manera? Entonces el problema de la resolución de 15 ms, que es problemática, desaparecerá.

Porque se trata de una función con una funcionalidad y una velocidad de ejecución claramente descritas.

Si quieres medir con precisión periodos de tiempo cortos, utiliza un temporizador de microsegundos. Si quieres una precisión de hasta 16 ms debes utilizar un temporizador de milisegundos más rápido.

 
Renat Fatkhullin:

Porque se trata de una función con una funcionalidad claramente descrita y una velocidad de ejecución.

¿Está descrita en alguna parte la velocidad de ejecución? No lo he visto en su documentación. ¿Y cómo afecta mi sugerencia a la funcionalidad? ¿Limitar la resolución a 15ms es una funcionalidad? Parece un inconveniente. Una medida forzada, por qué importar desventajas cuando se pueden evitar utilizando una solución más eficiente.

Si quieres medir con precisión periodos de tiempo cortos, utiliza un temporizador de microsegundos. Si quieres una precisión de hasta 16ms entonces utiliza un temporizador de milisegundos más rápido.

Puede que te hayas perdido las últimas páginas que decían que tu temporizador de microsegundos no es apto para el propósito, es problemático usarlo para medir intervalos ya que está bloqueado a la hora local del ordenador, a diferencia del PerfomanceCounter nativo que he citado como ejemplo.

 
Alexey Navoykov:

Probablemente no has leído con atención las últimas páginas, donde se dice que tu temporizador de microsegundos no es apto para el propósito. Es problemático para la medición del tiempo porque está atado a la hora local del ordenador, a diferencia del PerfomanceCounter estándar, que es el ejemplo que te he dado.

¿De dónde has sacado el complemento?

GetMicrosecondCount utiliza QueryPerformanceCounter.

Mida la diferencia entre dos valores obtenidos con GetMicrosecondCount y no dependerá ni del valor inicial ni de los trucos de cambio de hora local.

 
Alexey Navoykov:

¿Está descrita en alguna parte la velocidad de ejecución? No lo he visto en su documentación. ¿Y cómo afecta mi sugerencia a la funcionalidad? ¿Limitar la resolución a 15ms es una funcionalidad? Parece un inconveniente. Una medida forzada. ¿Por qué importar desventajas cuando se pueden evitar utilizando una solución más eficiente?

Probablemente no leíste con atención las últimas páginas, donde el punto es que tu temporizador de microsegundos no cumple con el propósito establecido. Es problemático usarlo para medir intervalos porque está atado a la hora local del ordenador, a diferencia del PerfomanceCounter regular que di como ejemplo.

Presta atención que eres tú quien hace las preguntas, no yo.

Así que no conoces el tema. Lo sé muy bien y te respondo, pero de alguna manera olvidas tu ignorancia e incluso la exiges.
 
Slava:

Mida la diferencia entre los dos valores de GetMicrosecondCount y no dependerá ni del valor inicial ni del foco de cambio de hora local.

Si la hora local cambia entre dos GetMicrosecondCounts, su diferencia mostrará algo diferente.

 
fxsaber:

Si la hora local cambia entre los dos GetMicrosecondCounts, su diferencia mostrará algo diferente.

SSZB.

 
Renat Fatkhullin:

SSZB.

:)

 
Renat Fatkhullin:

PRSB.

Explique esto a los compradores del mercado.

 
Una conversación muy constructiva )
 
fxsaber:

Explique esto a los compradores del mercado.

¿Cuál es la probabilidad de que la hora del ordenador local cambie entre dos llamadas a GetMicrosecondsCount utilizadas para medir el tiempo en microsegundos?