Lienzo vs. Etiquetas - página 14

 
Renat Fatkhullin:

Si se lee de un recurso almacenado en tiempo de compilación, hay que hacerlo una vez.

Leí de una dinámica.

 
Mihail Matkovskij:

Tienes que decir a qué parámetros de entrada Kanvas es lento. Si limit_fps: false, entonces es una obviedad... :)

¿Estaba buscando ayerlimit_fps?

 
Dmitry Fedoseev:

¿Estaba buscando ayerlimit_fps?

¿Qué hay que buscar? Ejecute el Asesor Experto y pruébelo en diferentes modos. Cono sin limit_fps activado.Y entonces lo entenderás todo.

El objetivo es limitar la frecuencia con la que se llama a CC anvas::TextOut y CCanvas::Update.
 
Mihail Matkovskij:

¿Qué hay que buscar? Ejecute el Asesor Experto e intente tomar medidas en diferentes modos. Cono sin limit_fps activado.Y entonces lo entenderás todo.

El objetivo es limitar la frecuencia con la que se llama a CCanvas::TextOut y CCanvas::Update.

¿Crees que todo el mundo es un idiota? Simplemente salvaje y delirante - ¿y eso es normal? ¿Por qué iba a buscarlo si había uno? Descarga tus archivos desde esos enlaces que te diste hace unas páginas y mira que no hay ningún método de campo para establecer limit_fps. La llamada está ahí, pero el método del campo no, por lo que no compila. Pero si se comenta una línea, se compila. Pero ya he encontrado la página en el codebase y he descargado el archivo, todo está ahí. Lo explico adrede, si no, puedes empezar a pensar cómo podría probarlo con limit_fps activado cuando no hay ningún método. Pero quién sabe, quizá esos enlaces ya lo tengan, quizá los archivos se actualicen con retraso allí también,

No tiene sentido limitar lafrecuencia de las llamadas aTextOut Update cuando se compara con la etiqueta, porque la comparación debe hacerse en las mismas condiciones.

 
Dmitry Fedoseev:

¿Crees que todo el mundo es tan idiota y ya está? Simplemente salvaje y delirante - ¿y eso es normal? ¿Por qué iba a buscarlo si había uno? Descargue sus archivos desde esos enlaces que usted mismo dio hace unas páginas y vea que no hay ningún método de campo para establecer limit_fps. La llamada está ahí, pero el método del campo no, por lo que no compila. Pero si se comenta una línea, se compila. Pero ya he encontrado la página en el codebase y he descargado el archivo, todo está ahí. Lo explico adrede, porque si no, puedes empezar a pensar cómo podría probar de esta manera con limit_fps activado cuando no hay ningún método. Pero quién sabe, quizá esos enlaces ya lo tengan, quizá los archivos se actualicen con retraso allí también,

No tiene sentido limitar lafrecuencia de las llamadas deactualización de TextOut cuando se compara con la etiqueta, porque la comparación debe hacerse en las mismas condiciones.

Acabas de descargar una versión demo, allí la limitación de FPS funciona sin posibilidad de desactivarla. Pero se necesita un experto para hacer las mediciones. Puede encontrar todos los enlaces aquí https://www.mql5.com/ru/forum/364640/page13#comment_21314045 . Descargue la biblioteca ChartDisplay.mqh y el experto CanvasVsLabels.mq5.

Aquí tienes una captura de pantalla para ayudarte

Y lee todo con atención antes de escribir tu próximo mensaje de descontento. :)

 
Cuando las propiedades de los objetos gráficos cambian a un ritmo elevado y cuando se intenta guardar el propio gráfico, Windows arroja una pantalla azul.
 
Mihail Matkovskij:

Acabas de descargar la versión demo, el límite de FPS funciona allí sin la opción de desactivarlo. Pero se necesita un experto para tomar las medidas. Aquí puede encontrar todos los enlaces https://www.mql5.com/ru/forum/364640/page13#comment_21314045 . Descargue la biblioteca ChartDisplay.mqh y el experto CanvasVsLabels.mq5.

Aquí tienes una captura de pantalla para ayudarte

Y lee todo con atención antes de escribir tu próximo mensaje de descontento. :)

Aquí tienes un enlace con una cita de tu post donde dabas enlaces para descargar archivos. ¿Qué debía leer allí y qué opción tenía? Y ahora ya has editado ese post tuyo. ¿De verdad crees que todo el mundo es tan idiota y que es tan fácil que se caguen en el cerebro?

¿O crees que no tengo nada mejor que hacer y estoy aquí sentado inventando historias descabelladas?

 
Nikolai Semko:
¿De verdad?
Una sorpresa para mí.
¿Cuánto más lento que copiar un array uint normal del mismo tamaño?
#include <fxsaber\Benchmark\Benchmark.mqh> // https://www.mql5.com/ru/code/31279

void OnStart()
{
  uint Data[];
  
  ArrayResize(Data, 1 e6);

  const string Name = "::" + __FILE__;
  
  for (int i = 0; i < 10; i++)
    _B(ResourceCreate(Name, Data, ArraySize(Data), 1, 0, 0, ArraySize(Data), COLOR_FORMAT_ARGB_NORMALIZE), 100);
    
  uint Width;
  uint Height;
  
  for (int i = 0; i < 10; i++)
    _B(ResourceReadImage(Name, Data, Width, Height), 1);
  
  ResourceFree(Name);
}


Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 1973 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 891 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 1226 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 1232 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 940 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 940 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 924 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 917 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 925 mcs.
Alert: Bench_Stack = 0, 100 <= Time[Test9.mq5 557 in OnStart: ResourceCreate(Name,Data,ArraySize(Data),1,0,0,ArraySize(Data),COLOR_FORMAT_ARGB_NORMALIZE)] = 932 mcs.

Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2575 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2442 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 7473 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2308 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2955 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2883 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2715 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2842 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2755 mcs.
Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 563 in OnStart: ResourceReadImage(Name,Data,Width,Height)] = 2304 mcs.

Los retrasos son evidentes. Y la grabación muestra que 1000 FPS es el techo.

 
fxsaber:


Los frenos están en tu cara. Sí y la grabación muestra que 1000 FPS es el techo.

Lo resolveremos, es raro.

 
Dmitry Fedoseev:

Aquí tienes un enlace con una cita de tu post en el que dabas enlaces para descargar archivos. ¿Qué debía leer allí y qué opción tenía? Y ahora ya has editado ese post tuyo. ¿De verdad crees que todo el mundo es tan idiota y que es tan fácil que se caguen en el cerebro?

¿O crees que no tengo nada mejor que hacer y estoy aquí sentado inventando historias descabelladas?

Exactamente, en ese enlace escribí de dónde descargar.

Mihail Matkovskij:

Descargue los archivos en \MQL5\Experts\canvas-vs-labels\measurement\cyberdev y \MQL5\Experts\canvas-vs-labels\measurement\ en KB. Para limitar los fps, establezca limit_fps en true en los parámetros de entrada. archivo: CanvasVsLabels.mq5. Más arriba se muestra cómo realizar la prueba. Y hay una descripción en KB.

¡Eso no fue suficiente para ti! Entonces no entendiste el código fuente, ni siquiera cómo ejecutarlo. Aunque ya los he medido y he publicado los resultados más arriba. Ahora, ¿descargaste el código fuente? ¿Correrlo? Si no es así, vete a estudiar al menos los fundamentos de la programación. ¡Porque es imposible! Si ni siquiera sabes cómo construir una aplicación a partir de fuentes ya hechas, qué más podemos decir...

Adjunto el archivo compilado del Asesor Experto. Si todavía tienes problemas para usarlo, deberías aprender a utilizarlo. Empieza por lo básico: qué es una variable, qué es una función y qué es un programa. Y luego sigue y sigue.


Archivo <*.ex* borrado

Razón de la queja: