Fehler, Irrtümer, Fragen - Seite 1627

 
Alexey Navoykov:
Ich kann mir nicht vorstellen, wie viel ein solches Projekt in MQL gebaut worden wäre. Und in kompletten IDEs gibt es verschiedene Arten der Kompilierung. Vielleicht beziehen Sie sich auf den Release-Build, während in den meisten Fällen die Fehlersuche ausreichen würde. Aber in MT haben Sie nicht viel Zeit, darauf zu warten.
Außerdem werden dort vorkompilierte Dateien verwendet, so dass nachfolgende Builds natürlich schneller sind.

Auf die Pluspunkte schreibe ich in der üblichen gedit, Debugging-Konsole in sie, Debuggen erfolgt direkt in gdb, Verknüpfung und Builds sind auch aus der gcc-Konsole, aus der IDE manchmal QtCreator verwenden, aber nur, wenn was ich brauche, um zu schreiben oder zu debuggen eine GUI :)

Zu dieser Entscheidung kam ich vor weniger als einem Jahr, als ich feststellte, dass es einfacher ist, einen einfachen Texteditor ohne zusätzliche Funktionen zu laden und etwas zu korrigieren oder zu schreiben, als eine schwere IDE zu laden...

 

Alexey Navoykov:
Насчёт ВСЕХ кодов - вы не погорячились? Откуда такая уверенность? Вы их все пробовали?

Viel ausprobiert...

Ok, ich gebe dir einen Code, mit dem du es abspielen kannst, wenn ich an meinem Computer sitze. Aber ich bin schon verwirrt durch Ihre Geschichten über zig ms auf schwacher Hardware. Sprechen wir über dieselben Dinge? Ist die Skriptdatei .mq5? Und welche CPU haben Sie?

Ich werde die Daten klären, wenn ich an meinem Computer bin.
 
Slawa:
Was gibt es zu berichten?
Debug auf die Geschichte aus irgendeinem Grund nimmt die vollständige Visualisierung. So wird die Wahrheit erklärt. Ich werde zusätzlich __DEBUG__ verwenden. Die Dokumentation sagt nicht viel über visuelles Debugging aus.
 
Kommentare, die für dieses Thema nicht relevant sind, wurden in die Rubrik "Hilfe beim Gridiron" verschoben.
 

Ich habe in kodobase gesucht, bis ich einige große Projekte für MT5 gefunden habe. Aber was mich erstaunt hat, ist, dass die Abschnitte der Expert Advisors und Indikatoren in der Tat voll von Handarbeiten der gleichen Person sind. Und er hat mehrere von ihnen jeden Tag für mehrere Jahre herausgeschmissen!Ich weiß nicht, warum er das so eifrig macht und wofür... Vielleicht bezahlt MQ ihn dafür, ich weiß es nicht... Natürlich wird alles in einer Reihenfolge vorbereitet, aber ich persönlich wäre es leid, nur Beschreibungen und Screenshots zu machen).

Der Expert Advisor wiegt etwa 150-200 kb, aber erstens ist der Code ziemlich verschmiert, und zweitens gibt es viele sich wiederholende Fragmente. Nun, das ist meine Schätzung. Vom Volumen her würde ich ein Vielfaches weniger brauchen.Zweitens ist der Code selbst einfach, es gibt keine virtuellen Funktionen, Vorlagen und auch keine dynamischen Objekte und Zeiger.Das heißt, in der Tat alle Code kann inline sein. Es kompiliert ziemlich schnell, in der Nachbarschaft von 600-700 ms. Nun, in der Regel müssen Sie eine wirklich umfangreiche und ziemlich komplexes Beispiel zu finden. Und von meinen Entwicklungen, die ich nur abgeschlossen, dass Projekt unter dem neuen Compiler, alle anderen, die ich unter dem alten, und verbringen Sie Zeit auf ihre Revisionen, sehe nicht die Notwendigkeit, angesichts der aktuellen Situation.

 
Alexey Navoykov:

...

Und unter meinen Entwicklungen habe ich nur abgeschlossen, dass Projekt für den neuen Compiler, alle anderen benutze ich die alte, und die Zeit auf ihre Anpassung zu verbringen, sehe ich nicht die Praktikabilität, angesichts der aktuellen Situation.

AktuelleVersion:Grafische Oberflächen IX: Elemente "Fortschrittsbalken" und "Liniendiagramm" (Kapitel 2)

 

Der erste Test Expert Advisor TestLibrary01 wurde in 6,5 Sekunden kompiliert. Allerdings müssen wir noch abschätzen, wie viel Code tatsächlich von diesem Expert Advisor verwendet wird. Außerdem sieht das Wort "smart" etwas komisch aus, wenn wir es mit der Kompiliergeschwindigkeit im alten Build vergleichen. Dort war sie augenblicklich. Wenn sich jemand damit vertraut machen möchte, füge ich den Compiler der Version 1159 bei. Bitte benennen Sie die Datei natürlich um.

D.h. wir können in der Tat folgende Schlussfolgerung ziehen: Die Kompilierzeit kann natürlich je nach Codegröße und Komplexität um ein Vielfaches variieren, aber eines ist unveränderlich - sie ist im neuen Compiler viel langsamer als im alten. Gleichzeitig habe ich überprüft, dass es keinen signifikanten Gewinn an Software-Geschwindigkeit gibt. Wenn jemand das Gegenteil beweisen will, nur zu.

Dateien:
 
Alexey Navoykov:

Nun, der erste Test Expert Advisor TestLibrary01 wurde in 6,5 Sekunden kompiliert. Allerdings müssen wir noch abschätzen, wie viel Code tatsächlich von diesem Expert Advisor verwendet wird. Außerdem sieht das Wort "smart" etwas komisch aus, wenn wir es mit der Kompiliergeschwindigkeit im alten Build vergleichen. Dort war sie augenblicklich. Wenn sich jemand damit vertraut machen möchte, füge ich den Compiler der Version 1159 bei. Bitte benennen Sie die Datei natürlich um.

Daraus lässt sich in der Tat folgende Schlussfolgerung ziehen: Die Kompilierzeit kann natürlich je nach Größe und Komplexität des Codes um ein Vielfaches variieren. Aber eines bleibt unverändert: Der alte Compiler ist viel schneller als der neue. Ich habe es überprüft, und es gibt keinen nennenswerten Geschwindigkeitsgewinn. Wenn jemand das Gegenteil beweisen will, nur zu.

Natürlich dauern die komplexesten Projekte in MetaTrader 5 zu lange zum Kompilieren. Es kann sogar bis zu 11 Sekunden dauern. Die gleichen Versionen in MetaTrader 4 sind bis zu 25 Mal schneller.

Zum Beispiel das gleiche Projekt.

MetaTrader5:

0 error(s), 0 warning(s), compile time: 11054 msec              1       1

//---

MetaTrader4:

0 error(s), 0 warning(s), compile time: 434 msec                1       1

//---

Bislang ist nicht klar, worauf sie sich bezieht. Sie können versuchen, Material für Tests vorzubereiten und es an servicedesk zur Überprüfung zu schicken. Wenn Sie den Code Ihrer Projekte nicht zeigen wollen, können Sie den Code aus den Artikeln dieser Reihe als Beispiel verwenden.

 
Anatoli Kazharski:

Natürlich brauchen auch meine komplexesten Projekte in MetaTrader 5 viel Zeit zum Kompilieren. Es dauert sogar bis zu 11 Sekunden. Genau die gleichen Versionen, aber in MetaTrader 4 kann bis zu 25 Mal schneller sein.

Zum Beispiel das gleiche Projekt.

MetaTrader5:

//---

MetaTrader4:

//---

Bislang ist nicht klar, worauf sie sich bezieht. Sie können versuchen, Material für Tests vorzubereiten und es an servicedesk zur Überprüfung zu schicken. Wenn Sie den Code Ihrer Projekte nicht zeigen wollen, können Sie den Code aus den Artikeln dieser Reihe als Beispiel verwenden.

Ich habe eine Vermutung: Weil MT4 32-Bit ist, wurde er nicht "total optimiert". Soweit ich weiß, wurde diese Compiler-Wee-Optimierung als angebliche Verbesserung der Arbeit in einer 64-Bit-Umgebung deklariert. Übrigens sollte ich die 32-Bit-Version von MT5 überprüfen. Vielleicht ist damit alles in Ordnung. Aber ich habe diese Möglichkeit nicht.

Wenn Sie eine 32bit-Version von metaeditor for 5 haben, teilen Sie sie bitte mit uns.

 
Anatoli Kazharski:

Natürlich brauchen auch meine komplexesten Projekte in MetaTrader 5 viel Zeit zum Kompilieren. Es dauert sogar bis zu 11 Sekunden. Genau die gleichen Versionen, aber in MetaTrader 4 kann bis zu 25 Mal schneller sein.

Zum Beispiel das gleiche Projekt.

MetaTrader5:

//---

MetaTrader4:

//---

Bislang ist nicht klar, worauf sie sich bezieht. Sie können versuchen, Material für Tests vorzubereiten und es an servicedesk zur Überprüfung zu schicken. Wenn Sie den Code Ihrer Projekte nicht zeigen wollen, können Sie den Code aus den Artikeln dieser Reihe als Beispiel verwenden.

Dies ist eine Code-Optimierung.

Wenn Sie OPTIMIZE=0 in das Feld [Experts] in metaeditor.ini schreiben, wird Ihre Kompiliergeschwindigkeit wie in 4. Ich habe einige Projekte, die in 20 Sekunden kompiliert werden und andere, die in eine unendliche Optimierungsschleife geraten :)