Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ich habe es gefunden! Mit der PLO konnte ich immerhin eine höhere Geschwindigkeit erreichen. Ja, die Vorteile sind unbestreitbar.
Dann sollten wir alles in Assembler schreiben. Es wäre ohnehin schneller.
Ich verstehe das Problem nicht. Ich habe noch nie einen Expert Advisor oder Indikator mit 1 MB Code gesehen.
Auch der Aufruf einer Funktion nimmt einige Zeit in Anspruch. Lassen Sie uns auch Funktionen aufgeben!
Die Kontrolle über große Projekte ist mit OOP viel einfacher.
Außerdem ist die Geschwindigkeit der Code-Ausführung oft nicht so entscheidend wie die Ping-Zeit an den Makler und die Antwort auf den Auftrag des Maklers.
Sehen Sie sich die HFT-Algorithmen an. Sie erfordern maximale Geschwindigkeit, aber Sie werden dort keine komplexen Berechnungen finden.
PS. Normalerweise braucht man kein Superauto oder Schneemobil, um von A nach B zu kommen. Ein Moped reicht aus! Ein Moped ist genug!
Ich habe es gefunden! Mit der PLO konnte ich immerhin eine höhere Geschwindigkeit erreichen. Ja, die Vorteile sind unbestreitbar.
Wie lautete also der Code?
Im neuen Build des MQL-Compilers haben wir bereits die Optimierung eingebaut, eine virtuelle Methode durch einen direkten Aufruf zu ersetzen, wenn es sich um die letzte Methode in einer Kette von virtuellen Methoden handelt und keine Verbindungen zu externen Bibliotheken bestehen.
Diese Methode vereinfacht und beschleunigt virtuelle Aufrufe in vielen Programmen, die mit Klassen arbeiten.
Die Ergebnisse des test.mq4-Beispiels aus dem ersten Beitrag im 670er Build:
Die Schleife musste von 10.000.000 auf 50.000.000 erhöht werden, um nicht mit winzigen Zeitmessungen von 32-64 ms arbeiten zu müssen. Die Zeit wird in ms angegeben, je kleiner die Zahl, desto schneller ist der Code.
Dies ist das Ergebnis, das ich mit dem neuen Compiler für denselben Code erhalten habe:
OOP hat mit einem Paukenschlag gewonnen. Aber warum?
Zunächst wurde die virtuelle Methode in eine reguläre Methode umgewandelt, dann wurde sie zinlined und auf Null optimiert. Tatsächlich verschwanden Funktionsaufruf und -körper vollständig, so dass eine reine Schleife übrig blieb:
Die Dateien sind beigefügt, einschließlich der neuen Beta-Version des Konsolen-Compilers. Sie können alle Beispiele mit dem regulären 670er Build von MetaEditor (der Compiler ist darin integriert) und dem Konsolen-Compiler vergleichen.
Was dies beweist: