Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Ah, bueno, entonces es normal en absoluto.
También tengo un lienzo en mi gif, y es el panel que menos recursos consume, porque no tengo que redibujarlo tan a menudo y captar el momento en que entra una nueva barra.
¡Genial! ¡Todo está volando!
Y a baja velocidad, se actualiza sin saltarse el ritmo.Encontré los archivos correctos. No está claro dónde, dónde y cuándo mirar los números, pero incluso sin eso se puede ver que el lienzo es mucho más lento, y no es sólo un lienzo en lugar de un lebble, sino un lienzo en lugar de un montón de etiquetas.
Ejecute el experto CanvasVsLabels.mq5, seleccione el tipo de visualizaciónoutType, habilite limit_fps, establezca, nIterations, es 10000 por defecto. Esto es suficiente, no es necesario cambiarlo. Entonces los resultados serán similares a los presentados aquí: https://www.mql5.com/ru/forum/364640/page11#comment_21301589.
Ahora los resultados. Min delay,Mid delay yMax delay son los retrasos mínimo, medio y máximo, respectivamente, de una ejecución. Total, es el tiempo total para el número total denIteraciones pasa.
Una vez más, he aquí una tabla con losresultados de la comparación
Se pueden realizar exactamente las mismas mediciones en el probador, ya que el examinador está diseñado para ello. Pero aún no los he hecho. Lo haré cuando tenga tiempo libre. Tengo previsto experimentar con un despliegue de muchas BitmabLabels en el futuro.
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias
Lienzo vs. Etiquetas
fxsaber, 2021.03.13 19:26
¿Soy el único con este tipo de resultado?
Se lleva el 15-20%. Al parecer, mi tarjeta de vídeo es demasiado lenta.
Resulta que ResourceReadImage es muy lento. Me deshice de él - tengo cero carga.
De nuevo publico la tabla comparativa, pero esta vez con histogramas.
Comparación de los valores de retraso medio por pase
Que por alguna razón no eran comparables con el tiempo total de ejecución (Total)...
Comparación del tiempo total de funcionamiento
Las mediciones mostraron que la visualización basada en Canvas con FPS limitados (Canvas unlimited FPS) es ligeramente más lenta que la visualización basada en etiquetas con FPS limitados(Labels unlimited FPS). Pero, en general, ambos son adecuados para mostrar información de procesos muy cargados.
Cómo ejecutar el Asesor Experto para tomar medidas
El Asesor Experto puede tomar medidas en el comprobador visual exactamente de la misma manera. Sin embargo, el intervalo de fechas debe establecerse en la configuración del comprobador de forma que haya al menos tantas barras en el historial como el valor del parámetro de entradanIterations.
Puede encontrar más información, así como las fuentes, en la descripción de la biblioteca Chart Display:https://www.mql5.com/ru/code/33898
Biblioteca especialmente modificada para las mediciones:https://www.mql5.com/ru/code/download/33898/chartdisplay.mqh
Experto universal para la medición:https://www.mql5.com/ru/code/download/33898/canvasvslabels.mq5
Para más detalles, consulte la base de datos: https://www.mql5.com/ru/code/33898
Me gustaría añadir más medidas correctas, realizadas con el nuevo Expert Advisor en el primer post de este hilo. Ya que esas medidas, que están ahí en este momento, no son correctas. Pero el primer mensaje, lamentablemente, ya no se puede editar. Pido a los moderadores que añadan más medidas correctas al principio, y que marquen las que hay ahora como irrelevantes.
Resulta que ResourceReadImage es muy lento. Me deshice de él - cero carga.
Ejecución del experto CanvasVsLabels.mq5...
¿Qué sentido tiene? No quiero indagar en el código ahora mismo. ¿Cómo se calculan estos valores? Si se realizan pruebas en el probador, se debe medir el tiempo total empleado en la ejecución y nada más, pero no el rendimiento de los fragmentos de código individuales. En el caso extremo, no cuente el inite. Y he aquí que sin mediciones se puede ver que el kanvas es más lento. No sé, tal vez tengo algún tipo de anomalía...
¿De verdad?
Con la llamada era alrededor del 15% de carga, sin - cero.
¿Qué sentido tiene? No quiero indagar en el código ahora mismo. ¿Cómo se calculan estas cifras? Si realizas las pruebas en el probador así, debes medir el tiempo total de la ejecución y nada más, y no el rendimiento de los fragmentos de código por separado. En el caso extremo, no cuente el inite. Y he aquí que sin mediciones se puede ver que el kanvas es más lento. No sé, tal vez tengo algún tipo de anomalía...
No quiero indagar en el código. Tampoco quiero creer en mi palabra. :) No sé cómo explicártelo. Contando de principio a fin cómo escribí todo el código... Eso daría para un artículo entero. :)
Y no hay que entender en absoluto cómo hace las mediciones un experto.
El total se calcula al final del bucle y el mínimo, el medio y el máximo en el cuerpo del bucle, después de display.push, display.setText y display.update. Nada complicado, si te sientas y miras bien todo, puedes llegar al menos al código fuente de Kanvas y Labels. Por cierto, tampoco hay nada complicado. Excepto los métodos que dibujan curvas Bezier y similares en Kanvas.Y aquí, sin medidas, se puede ver que el kanvas es más lento. No sé, tal vez tengo algún tipo de anomalía...
Tienes que decirme a qué parámetros de entrada Kanvas es lento. Si limit_fps: false, entonces es obvio... :)
Resulta que ResourceReadImage es muy lento. Me deshice de él y no tengo carga.
Si se lee desde un recurso guardado en tiempo de compilación, hay que hacerlo una vez.
Los recursos se comprimen en tiempo de compilación.