Leinwand vs. Etiketten - Seite 14

 
Renat Fatkhullin:

Wenn Sie zur Kompilierzeit aus einer gespeicherten Ressource lesen, müssen Sie dies einmal tun.

Ich lese von einem dynamischen.

 
Mihail Matkovskij:

Sie müssen angeben, bei welchen Eingabeparametern Kanvas langsam ist. Wenn limit_fps: false, dann ist es ein No-Brainer... :)

Habe ich gestern nur nachlimit_fps gesucht?

 
Dmitry Fedoseev:

Habe ich gestern nur nachlimit_fps gesucht?

Was gibt es da zu suchen? Führen Sie den Expert Advisor aus und testen Sie ihn in verschiedenen Modi. Mitoder ohne aktiviertemlimit_fps. Und dann wirst du alles verstehen.

Es geht darum, die Häufigkeit des Aufrufs von CCanvas::TextOut und CCanvas::Update zu begrenzen.
 
Mihail Matkovskij:

Was gibt es da zu suchen? Führen Sie den Expert Advisor aus und versuchen Sie, Messungen in verschiedenen Modi vorzunehmen. Mitoder ohne aktiviertemlimit_fps. Und dann wirst du alles verstehen.

Es geht darum, die Häufigkeit des Aufrufs von CCanvas::TextOut und CCanvas::Update zu begrenzen.

Glauben Sie, dass alle Menschen einfach nur Idioten sind? Einfach wild und wahnhaft - und das ist normal? Warum sollte ich danach suchen, wenn es eine gäbe? Laden Sie Ihre Dateien von den Links herunter, die Sie selbst vor ein paar Seiten angegeben haben, und stellen Sie fest, dass es keine Feldmethode gibt, um limit_fps einzustellen. Der Aufruf ist vorhanden, die Feldmethode jedoch nicht, so dass sie nicht kompiliert werden kann. Aber wenn Sie eine Zeile auskommentieren, wird sie kompiliert. Aber ich habe die Seite bereits in der Codebasis gefunden und das Archiv heruntergeladen, alles ist da. Ich erkläre es absichtlich, sonst könnten Sie anfangen zu denken, wie ich auf diese Weise mit aktiviertem limit_fps testen könnte , wenn es keine Methode gibt. Aber wer weiß, vielleicht haben diese Links es schon, vielleicht werden die Dateien dort auch mit Verzögerung aktualisiert,

Es machtkeinen Sinn, dieHäufigkeit derTextOut-Update-Aufrufe beim Vergleich mit dem Etikett zu begrenzen, da der Vergleich unter denselben Bedingungen durchgeführt werden muss.

 
Dmitry Fedoseev:

Glaubst du, dass alle so dumm sind und das war's? Einfach wild und wahnhaft - und das ist normal? Warum sollte ich danach suchen, wenn es eine gäbe? Laden Sie Ihre Dateien von den Links herunter, die Sie selbst vor ein paar Seiten angegeben haben, und stellen Sie fest, dass es keine Feldmethode gibt, um limit_fps einzustellen. Der Aufruf ist vorhanden, die Feldmethode jedoch nicht, so dass sie nicht kompiliert werden kann. Aber wenn Sie eine Zeile auskommentieren, wird sie kompiliert. Aber ich habe die Seite bereits in der Codebasis gefunden und das Archiv heruntergeladen, alles ist da. Ich erkläre es absichtlich, sonst könnten Sie anfangen zu denken, wie ich auf diese Weise mit aktiviertem limit_fps testen könnte , wenn es keine Methode gibt. Aber wer weiß, vielleicht haben diese Links es schon, vielleicht werden die Dateien dort auch mit Verzögerung aktualisiert,

Es machtkeinen Sinn, dieHäufigkeit derTextOut-Update-Aufrufe beim Vergleich mit dem Etikett zu begrenzen, da der Vergleich unter denselben Bedingungen durchgeführt werden sollte.

Sie haben gerade die Demoversion heruntergeladen, dort funktioniert die FPS-Beschränkung ohne die Möglichkeit, sie abzuschalten. Aber Sie brauchen einen Experten, der die Messungen vornimmt! Alle Links finden Sie hier https://www.mql5.com/ru/forum/364640/page13#comment_21314045. Laden Sie die Bibliothek ChartDisplay.mqh und den Experten CanvasVsLabels.mq5 herunter.

Hier ist ein Bildschirmfoto, das Ihnen helfen soll

Und lesen Sie alles sorgfältig durch, bevor Sie Ihre nächste Nachricht mit Unzufriedenheit schreiben! :)

 
Bei hohen Änderungsraten in den verschiedenen Eigenschaften von grafischen Objekten und beim Versuch, das Diagramm selbst zu speichern, meldete Windows einen blauen Bildschirm.
 
Mihail Matkovskij:

Sie haben gerade die Demoversion heruntergeladen, dort funktioniert das FPS-Limit ohne die Option, es auszuschalten. Aber Sie brauchen einen Fachmann, der Messungen vornimmt! Hier finden Sie alle Links https://www.mql5.com/ru/forum/364640/page13#comment_21314045 . Laden Sie die Bibliothek ChartDisplay.mqh und den Experten CanvasVsLabels.mq5 herunter.

Hier ist ein Bildschirmfoto, das Ihnen helfen soll

Und lesen Sie alles sorgfältig durch, bevor Sie Ihre nächste Nachricht mit Unzufriedenheit schreiben! :)

Hier ist ein Link mit einem Zitat aus Ihrem Beitrag, in dem Sie Links zum Herunterladen von Dateien angegeben haben. Was sollte ich dort lesen und welche Wahl hatte ich? Und jetzt haben Sie Ihren Beitrag bereits geändert. Glaubst du wirklich, dass alle Menschen so dumm sind und dass es für sie so einfach ist, auf ihr Hirn zu scheißen?

Oder glauben Sie, ich hätte nichts Besseres zu tun und sitze hier und denke mir wilde Geschichten aus?

 
Nikolai Semko:
Wirklich?
Eine Überraschung für mich.
Wie viel langsamer als das Kopieren eines normalen uint-Arrays der gleichen Größe?
#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.

Die Verzögerungen sind offensichtlich. Und die Aufzeichnung zeigt, dass 1000 FPS die Obergrenze sind.

 
fxsaber:


Die Bremsen sind in deinem Gesicht. Ja, und die Aufzeichnung zeigt, dass 1000 FPS die Obergrenze sind.

Wir werden es herausfinden, es ist seltsam.

 
Dmitry Fedoseev:

Hier ist ein Link mit einem Zitat aus Ihrem Beitrag, in dem Sie Links zum Herunterladen von Dateien angegeben haben. Was sollte ich dort lesen und welche Wahl hatte ich? Und jetzt haben Sie Ihren Beitrag bereits geändert. Glaubst du wirklich, dass alle Menschen so dumm sind und dass es für sie so einfach ist, auf ihr Hirn zu scheißen?

Oder glauben Sie, ich hätte nichts Besseres zu tun und sitze hier und denke mir wilde Geschichten aus?

Genau, unter dem Link habe ich geschrieben, wo der Download stattfindet.

Mihail Matkovskij:

Download von Dateien in \MQL5\Experts\canvas-vs-labels\measurement\cyberdev\ und \MQL5\Experts\canvas-vs-labels\measurement\ in KB. Um die fps zu begrenzen, setzen Sie limit_fps in den Eingabeparametern auf true. Datei: CanvasVsLabels.mq5. Wie Sie den Test durchführen, ist oben dargestellt. Und es gibt eine Beschreibung in KB.

Das war nicht genug für Sie! Dann haben Sie den Quellcode nicht verstanden, nicht einmal, wie man ihn ausführt. Auch wenn ich sie bereits gemessen und die Ergebnisse oben veröffentlicht habe. Haben Sie den Quellcode heruntergeladen? Ausführen? Wenn nicht, dann lernen Sie zumindest die Grundlagen des Programmierens. Weil es unmöglich ist! Wenn Sie nicht einmal wissen, wie man eine Anwendung aus vorgefertigten Quellen erstellt, was können wir dann noch sagen...

Ich füge die kompilierte Datei des Expert Advisors bei. Wenn Sie immer noch Probleme damit haben, sollten Sie wirklich lernen, wie man es benutzt. Beginnen Sie mit den Grundlagen: Was ist eine Variable, was ist eine Funktion und was ist ein Programm? Und dann geht es weiter und weiter!


<*.ex* Datei gelöscht