Fehler, Irrtümer, Fragen - Seite 1626
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
Wurde dieses Verhalten bei irgendeinem Experten beobachtet?
Protokolle wären allerdings hilfreich. Senden Sie ein Ticket an servicedesk.
...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 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?!
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.
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 ...
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.
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
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).
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.
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.