Fehler, Irrtümer, Fragen - Seite 1626

 
Alexey Da:

Wurde dieses Verhalten bei irgendeinem Experten beobachtet?

Protokolle wären allerdings hilfreich. Senden Sie ein Ticket an servicedesk.

Ich kann noch keine Protokolle und Dateien von meinem Telefon anhängen. Die Optimierungsparameter liegen bei etwa 500. Parameterwerte von 0 bis 2. 2000 Iterationen vergehen wie im Flug. Dann ist alles langsam. Bei der vorherigen Version waren 120.000 Durchläufe an einem Tag nötig.
 
Alexey Navoykov:

...Wie sonst ist es zu erklären, dass ein völlig leeres Skript, das nur die Funktion OnStart() { } enthält, über 400 ms kompiliert!

Natürlich schreibe ich keine Compiler, aber ich bin mir sicher, dass es ein gewisses Minimum gibt, das überhaupt nicht von der Größe des Projekts abhängt. Es ist, als würde man ein Taxi rufen und zum nächsten Eingang fahren - es scheint sich ein paar Meter zu bewegen, im Geld ein paar Pfennige, aber der Mindestpreis von 200r kann auch eine Frage aufwerfen - da ist ein Pfennig zu holen, für was?!
 
Alexey Oreshkin:
Natürlich schreibe ich keine Compiler, aber ich bin sicher, dass es einfach einige Mindestanforderungen gibt, die nicht von der Größe des Projekts abhängen. Es ist wie ein Taxi rufen und fahren Sie zum nächsten Eingang - wie ein paar Meter verschoben, in das Geld ein paar Kopeken, aber der Mindestpreis für den Dienst in 200r kann auch eine Frage aufwerfen - hier zu gehen für einen Pfennig, für was?!
Nun, mit dem Aufkommen von Yandex Taxi und ähnlichen Diensten wurde dies bereits etwas abgemildert. Und diese Zahlen sind durchaus vernünftig, denn jeder muss essen. Aber die von mir genannten Zahlen werden der Komplexität der Aufgabe eindeutig nicht gerecht.
 
Alexey Navoykov:

Ich möchte das Problem der langsamen MQL5-Kompilierung noch einmal ansprechen. Vor etwa drei Monaten habe ich versucht, dieses Problem anzusprechen, aber es wurde nicht verstanden, anscheinend waren meine Argumente nicht überzeugend genug. Daher bin ich zum alten Build (1159) zurückgekehrt, der alles fast sofort kompilierte (während mein Projekt mit den neuen Compilern in 20 Sekunden kompiliert wurde).

Und so habe ich vor einer Woche versucht, auf ein neues Build umzusteigen. Ich dachte mir, "vergiss die 20 Sekunden, ich halte es aus, um der neuen Sachen willen". Natürlich musste ich den Code ein wenig anpassen, um den neuen Bedingungen zu entsprechen, was einige Bugs des neuen Compilers aufdeckte (hier beschrieben).Das Ergebnis ist, dass mein Projekt bereits seit 30 Sekunden kompiliert! Ich weiß nicht, ob es mit der Kompliziertheit des Projekts oder mit einer weiteren "Komplikation" des Compilers zu tun hat, aber es passt einfach nicht mehr.

Das Projekt enthält etwa 700 Kb Quellcode, es ist ein Expert Advisor, der ein paar Dutzend mqh enthält. Alles ist OOP. Man schrieb mir früher, dass die Verlangsamung wahrscheinlich durch große Funktionen verursacht wird. Ich hatte einige davon, aber ich habe sie in kleinere Teile zerlegt, und sie haben keine Wirkung.

Das Erstaunlichste ist, dass diese überlange Zusammenstellung überhaupt keinen Nutzen hat. Die Geschwindigkeit des Programms ist die gleiche wie mit dem alten Compiler, ich habe sie extra gemessen. Das lässt nur einen Satz zu: "Wozu?".

Ich habe das starke Gefühl, dass es einen Fehler/Fehlfunktion im Compiler gibt, aufgrund dessen er untätig durch einen leeren Raum rast. Wie sonst kann ich mir die Tatsache erklären, dass ein absolut leeres Skript mit nur der Funktion OpenStart() { } über 400 ms kompiliert!Es ist unvorstellbar, dass es so lange dauern kann, ein leeres Skript zu kompilieren/optimieren. Nun, wenn man kleine Funktionen und Klassen hinzufügt, kann man sehen, wie schnell die Kompilierungszeit wächst.

Ich möchte gleich sagen, dass meine Hardware natürlich alles andere als leistungsfähig ist - Core i5U. Aber das hindert mein Projekt nicht daran, in 1-2 Sekunden auf einem alten Compiler zu kompilieren, bzw. der Dummy ist dort in einem Moment kompiliert.

Ich möchte noch anmerken. Dem Compiler fehlt nicht nur das Zwischenspeichern früher kompilierter Fragmente, sondern auch eine triviale Prüfung, um sicherzustellen, dass der Quellcode identisch ist. D.h. Sie kompilieren Ihr Projekt und klicken dann erneut auf die Schaltfläche "Kompilieren", ohne irgendwelche Änderungen vorzunehmen, und warten wieder dieselben 30 Sekunden. Wie gut ist das...

Ich würde gerne Kommentare von MT-Entwicklern und Forumsbenutzern hören, die mit großen Projekten arbeiten (bin nur ich von diesem Problem betroffen?), wie lange es dauert, zu kompilieren und auf welcher Hardware. Wir möchten darauf hinweisen, dass es sich um die Kompilierung einer ausführbaren Datei handelt.

Es geht um komplexe Konstrukte, die Sie hier manchmal als Bugs melden. Wenn Sie sie nicht verwenden, wird die Zeit erheblich verkürzt. Zum Beispiel kompiliert ALLer Code in kodobase deutlich schneller als 20 Sekunden. Ich habe einen 1368er Build auf einem sehr langsamen Laptop, der in wenigen Millisekunden kompiliert. Geben Sie mir den Code zum Reproduzieren.
 
coderex:
Das ist, warum ich nicht versuche, etwas mehr zu beweisen, außer Projekte auf der Plus nehmen viel länger zu bauen, obwohl sie viel größer sind, aber ich bin daran gewöhnt, in ein paar Minuten für eine ausführbare Datei oder Bibliothek zu bauen, während ein Projekt mit mehreren Dateien mit einer Verzeichnisstruktur dauert bis zu mehreren zehn Minuten :) und für 10-20 Sekunden warten ist kein Problem ...
Ich kann mir nicht vorstellen, wie lange es dauern würde, ein solches Projekt in MQL zu erstellen. Selbst die voll ausgestatteten IDEs haben verschiedene Kompiliermodi. Vielleicht beziehen Sie sich auf den Release-Build, während für uns der Debug-Modus meist ausreicht. Aber in MT haben Sie nicht viel Zeit, darauf zu warten.
Außerdem verwenden sie vorkompilierte Dateien, so dass nachfolgende Builds natürlich schneller sind.
 
fxsaber:
Es geht um komplexe Konstrukte, deren häufiges Scheitern Sie hier manchmal als Fehler melden. Wenn Sie sie nicht verwenden, wird die Zeit erheblich verkürzt. Zum Beispiel kompiliert ALLer Code in kodobase deutlich schneller als 20 Sekunden. Ich habe einen 1368er Build auf einem sehr langsamen Laptop, der in wenigen Millisekunden kompiliert. Gib mir den Code zum Spielen.
Reagieren Sie nicht zu sehr auf ALLE Codes? Wie können Sie so sicher sein? Haben Sie sie alle ausprobiert?
Und was die komplexen Entwürfe angeht, so ist das nur Ihre Spekulation. Was ist an ihnen kompliziert? Wenn sie irgendeine Komplexität aufweisen können, dann nur in der Phase der Syntaxprüfung, die sofort durchgeführt wird. Dies zeigt sich z. B. beim Kompilieren von mqh, bei dem kein ausführbarer Code erzeugt wird. Nach dieser Prüfung sind also alle scheinbaren Schwierigkeiten in den syntaktischen Konstruktionen bereits gelöst und der Compiler weiß genau, was zu tun ist. Der nächste Schritt ist die Optimierung des ausführbaren Codes. Und genau hier liegt das Problem.
Ok, wenn ich an meinem Computer sitze, werde ich Ihnen einen Code für die Wiedergabe geben. Aber ich bin schon verwirrt durch Ihre Erzählungen über zig ms auf schwacher Hardware. Sprechen wir über dieselben Dinge? Ist die Skriptdatei .mq5? Und welchen Prozessor haben Sie?
 
-Aleks-:
Der Link enthält nicht die Informationen, die Sie interessieren - seien Sie konkret.

Es ist schwer zu erraten, wenn man die erste Seite des Threads öffnet, der zwei Bilder im ersten Beitrag hat.

https://www.mql5.com/ru/forum/88768

Крупнейшие брокеры отмечают взрывной рост популярности MetaTrader 5
Крупнейшие брокеры отмечают взрывной рост популярности MetaTrader 5
  • Bewertungen: 1
  • www.mql5.com
Недавно один из национальных брокеров России Solid Financial Services запустил торговую платформу MetaTrader 5 с хеджинговой системой учета позиций...
 
Alexey Viktorov:

Es ist schwer zu erraten, wenn man die erste Seite des Threads öffnet, der zwei Bilder im ersten Beitrag hat.

https://www.mql5.com/ru/forum/88768

Ich habe mir das erste Bild angesehen - auf der Website gibt es keine Angaben über das Cent-Konto für die Fünfer. Aber das zweite Foto hat diese Daten, aber es ist nicht klar, ob es möglich ist, dort zu überlappen? Und die Begrenzung der Anzahl der offenen Aufträge und des Positionsvolumens... Das ist im Allgemeinen nicht gut. Aber es ist gut, dass es eine Möglichkeit gibt.

Aber leider habe ich keinen Anreiz, den gesamten Code neu zu schreiben (und auch kein zusätzliches Geld für das Umschreiben eines komplexen Codes auszugeben).

 
-Aleks-:

Ich habe mir das erste Bild angesehen - auf der Website gibt es keine Angaben über das Cent-Konto für die Fünfer. Aber das zweite Bild hat solche Daten, aber es ist nicht klar, ob es möglich ist, dort zu überlappen? Und die Begrenzung der Anzahl der offenen Aufträge und des Positionsvolumens... Das ist im Allgemeinen nicht gut. Aber es ist gut, dass es eine Möglichkeit gibt.

Aber leider haben wir keinen Anreiz, den gesamten Code neu zu schreiben (und auch kein Geld dafür auszugeben, den komplexen Code neu zu schreiben).

Warum mussten Sie dann solche Gründe erfinden? Sie könnten einfach NIKHAT und NOBODY sagen...

Wenn Sie nicht über so viel Geld verfügen, um auf einem Dollarkonto zu handeln, welche Beschränkungen in Bezug auf die Anzahl der Aufträge und das Volumen könnten Sie dann belasten? Es ist alles seltsam.

 
Alexey Viktorov:

Warum dann solche Gründe erfinden? Du könntest einfach sagen, ich will nicht und ich werde nicht...

Wenn ich nicht genug Geld habe, um auf einem Dollarkonto zu handeln, welche Beschränkungen hinsichtlich der Anzahl der Aufträge und der Volumina können mich belasten? Es ist alles seltsam.

Ich will und werde es tun - ich habe bereits einen Kurs über die Arbeit mit Aufträgen bestellt - so wie ich mich wohl fühle - und warte darauf, dass er bis Ende des Jahres erscheint.

Ich handele ein Counter-Trend-Grid, und das sogar mit steigenden Lots, mit vielen Währungspaaren - daher sind viele Orders und Unterstützung für ein großes Positionsvolumen erforderlich. Ich löse das Problem mit verschiedenen Tricks, und wenn ich sie erneut entwickeln und umsetzen muss, kostet mich das nur Zeit und verbessert nicht meine finanziellen Ergebnisse.