Fehler, Irrtümer, Fragen - Seite 2746
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
Nein. Sie ist zur Kompilierzeit noch nicht bekannt.
Wie lässt sich dann eine große Anzahl von Prüfungen vermeiden, wenn SymbolInfoTick zig Milliarden Mal aufgerufen wird?
Wie lässt sich dann eine große Anzahl von Prüfungen vermeiden, wenn SymbolInfoTick zig Milliarden Mal aufgerufen wird?
Das ist nicht der Fall. Es hilft nur, die Zeichenkette selbst nicht unnötig zu kopieren.
Nein. Es hilft nur, die Zeichenkette selbst nicht unnötig zu kopieren.
Dann ist offensichtlich die String-Referenz-Lösung für SymbolInfo-Funktionen die richtige, wenn man mehr Effizienz vom Optimierer will.
Mein Debugger weigert sich, in einem meiner Projekte zu arbeiten. Außerdem ist sein Verhalten schwer vorhersehbar. Manchmal weigert er sich einfach, Haltepunkte einzugeben. Es weigert sich auch, einige Funktionen einzugeben. Zuerst dachte ich, der Grund dafür seien Aktualisierungen (vielleicht ging bei der Fehlersuche etwas schief). Aber bei anderen, einfacheren Programmen scheint alles zu funktionieren. Ich habe es aber nicht oft überprüft, weil ich an meinem Hauptprojekt arbeite. Es ist recht komplex und umfasst allein 15 Module meines eigenen Entwurfs (die Anzahl der Standardmodule habe ich nicht gezählt). Das Hauptmodul enthält bis zu 2000 Zeilen. Ich dachte, vielleicht liegt es an der Komplexität des Projekts... Außerdem verwende ich an einigen Stellen Makros für sich wiederholende Codeschnipsel. Außerdem verwende ich Standard-UI-Elemente, wie CAppDialog, CCheckGroup, CComboBox, CButton usw., die ich für die Funktionalität meines Programms umgeschrieben habe. Vielleicht funktioniert das Debugging wegen ihnen nicht... Zum Beispiel wird die Methode CCheckGroup::itemCheckState(const string item), die ich speziell geschrieben habe, nicht debuggt. Die Methode findet das Element des Kontrollkästchens und prüft, ob es ausgewählt ist (sein Status):
Diese Art von Benutzeroberfläche habe ich am Ende erhalten:
Einige der UI-Elemente sind vorübergehend klassifiziert. Und hier ist ein Zweig, in dem ich beschrieben habe, wie ich die Show()- und Hide()-Methoden des CAppDialog-Elements überschrieben habe:https://www.mql5.com/ru/forum/338301 Der Compiler beschwerte sich in diesem Moment und ein kritischer Fehler trat auf.
Am Ende kompiliert das Projekt normal, der Compiler erzeugt keine Fehler. Aber das Debugging schlägt fehl und zeigt die Ausführung einiger Codefragmente, Funktionen, Methoden usw. einfach nicht an.
Soweit ich weiß, kann es dafür mehrere Gründe geben.
Build- und Systeminformationen:
2020.05.21 09:35:09.325 Terminal MetaTrader 5 x64 build 2433 started for MetaQuotes Software Corp.
2020.05.21 09:35:09.326 Terminal Windows 10 build 14393, Intel Core i5-5200U @ 2.20GHz, 2 / 3 Gb Speicher, 61 / 380 Gb Festplatte, IE 11, UAC, GMT+2
Es ist also offensichtlich, dass eine String-Referenz-Lösung für SymbolInfo-Funktionen die richtige ist, wenn man mehr Effizienz vom Optimierer erwartet.
Dieser Link macht keinen Sinn, das hat der Entwickler gesagt. Alles wird durch den Link so weitergegeben, wie es ist. Der einzige Unterschied war im alten MQL4. Und beim Lesen der Zeichenkette gibt es keine Prüfungen.
Es ist nur ermüdend, solche Behauptungen aufzustellen.
Es ist nur ermüdend, solche Behauptungen aufzustellen.
Vielleicht ist es einfacher, zu schreiben:
?...
Warum sollte man so etwas trinken?
Es ist vielleicht einfacher zu schreiben:
Es gibt eine andere Art von Diskussion.
Es ist nur ermüdend, solche Behauptungen aufzustellen.
Um zu vermeiden, dass Sie unsubstantiiert sind, geben Sie mir einen Vergleichswert für die Tests, bei denen sich die Zeichenfolge nicht ändert.