Leinwand vs. Etiketten - Seite 4

 
Maxim Kuznetsov:

Offensichtlich wird die Leinwand (BitMap) in ihrer Gesamtheit neu gezeichnet/kopiert, aber nur die Beschriftungen haben sich geändert. Warum sollte ich überrascht sein?

Canvas ist einfach praktisch und mäßig schnell.

Dmitry Fedoseev:
Und ohne Vergleichstests ist es offensichtlich, dass einfache Etiketten den Text schneller ausgeben.

Natürlich wusste ich das schon vorher. Aber ich war überzeugt, dass die Verwendung von Kanvas der schnellste Weg zur Ausgabe ist. Gleichzeitig war er im Testprogramm (bei der Ausgabe der Daten des getesteten Expert Advisors) furchtbar langsam, insbesondere bei Ticks. Die Verwendung von Etiketten hat die Situation natürlich verbessert. Also beschloss ich, herauszufinden, wie langsam Kanvas im Vergleich zu Labels wirklich ist. Sie ist 321 Mal langsamer, wenn man dieser Messung Glauben schenken darf.

 
Mihail Matkovskij:

Das wusste ich natürlich schon vorher. Aber ich war überzeugt, dass die Verwendung von Kanvas der schnellste Weg zur Ausgabe ist. Im Tester (bei der Ausgabe von Daten des zu testenden EA) war es jedoch furchtbar langsam, insbesondere bei Ticks. Die Verwendung von Etiketten hat die Situation natürlich verbessert. Also beschloss ich, herauszufinden, wie langsam Kanvas im Vergleich zu Labels wirklich ist. Wenn man dieser Messung Glauben schenkt, sind es 321 Mal.

Nun, gibt es nicht viele Fantasy-Erzähler auf der Welt?

 
Dmitry Fedoseev:

Gibt es nicht viele Fantasy-Erzähler auf der Welt?

Das ist sicher!

 
Maxim Kuznetsov:

Offensichtlich wird die Leinwand (BitMap) in ihrer Gesamtheit neu gezeichnet/kopiert, aber nur die Beschriftungen haben sich geändert. Warum sollte ich überrascht sein?

Canvas ist einfach zu bedienen und mäßig schnell.

Warum wird die gesamte Bitmap neu gezeichnet?
um zu beweisen, dass dies langsamer ist als das Neuzeichnen des Etiketts?

Für einen korrekten Vergleich sollten Sie auch nur einen Teil der Bitmap neu zeichnen, nämlich die Größe des Markers.

 
Taras Slobodyanik:

Warum wird die gesamte Bitmap neu gezeichnet?
um zu beweisen, dass dies langsamer ist als das Neuzeichnen des Etiketts?

Für einen korrekten Vergleich müssen Sie auch nur einen Teil der Bitmap neu zeichnen, nämlich die Größe des Etiketts.

So wird sie aktualisiert:

alles auf einmal

 
Maxim Kuznetsov:

so wird sie tatsächlich aktualisiert:

alle auf einmal.

Wird das Bild aktualisiert oder neu gezeichnet?
Ich habe noch nie eine Verlangsamung beim Aktualisieren gesehen.

 
Taras Slobodyanik:

Wird es also aktualisiert oder neu gezeichnet?
Ich habe noch nie Verzögerungen bei der Aktualisierung gesehen.

Wenn Sie bei der Arbeit mit OBJ_BITMAP_LABEL noch nie Bremsen gesehen haben, ist es wichtig zu sagen, wo. Wenn Sie im Terminal arbeiten, ja. Die Verzögerung ist unbedeutend. Nimmt man aber die Arbeit im Tester und auch Model: All ticks oder OHLC auf M1, so fällt die ständige Übergabe des m_pixels-Arrays mittels ResourceCreate auf. Pixeloperationen gelten im Allgemeinen als die kostspieligsten in jedem Programm.

 
Maxim Kuznetsov:

so wird sie tatsächlich aktualisiert:

alles auf einmal

Eh, ich erinnere mich, dass man die Leinwand im Videopuffer mit einem Pixel bearbeiten kann, aber das ist so uninteressant(

 
Dmitry Fedoseev:

Es gibt nicht viele Fantasy-Erzähler auf der Welt, nicht wahr?

Dmitry, bevor man etwas beurteilt, muss man verstehen, wo alles angefangen hat...

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Fehler, Irrtümer, Fragen

Mihail Matkovskij, 2021.03.07 14:02

Kommentar gibt Zeilen mit völlig unterschiedlicher Länge aus (visuell), während ihre Länge genau gleich ist

Kommentar

Code:

void OnStart() {
  string str[5], res="";
  StringInit(str[0], 50, 'a');
  StringInit(str[1], 50, 'X');
  StringInit(str[2], 50, '=');
  StringInit(str[3], 50, ' ');
  StringInit(str[4], 50, ':');
  for (int i = 0; i < 5; i++) 
    res += str[i] + "\n";
  Comment(res);
}

Wie kann ich Zeilen mitKommentar ausgeben, die visuell gleich lang sind? Ich möchte beispielsweise eine dreispaltige Tabelle so ausgeben, dass die Spalten vertikal gleichmäßig verteilt sind.

Wenn ich mich nicht irre, hieß es irgendwann einmal fünfzig Zeilen...
 
Alexey Viktorov:

Dimitri, bevor man etwas beurteilt, muss man verstehen, wo alles angefangen hat...

Wenn ich mich nicht irre, hieß es irgendwann einmal fünfzig Zeilen...

Machen Sie lieber ein Beispiel, bei dem eine Canvas-basierte Anzeige die Anzeige von Labels überholt! Wenn Sie zum Beispiel meine Behauptungen widerlegen wollen, müssen Sie nach dem Gesetz der Logik das Gegenteil beweisen. Wird es funktionieren...?