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
)). Dies mag nur in persönlichen Handwerksbetrieben mit genauer Kenntnis des Wertebereichs einen Platz haben, aber nicht in der Standardbibliothek. Die eingebauten Funktionen werden nicht von Dummköpfen geschrieben, halten Sie sich nicht für die Klügsten. Hier ist ein Freund, der auch undefiniertes und nicht spezifiziertes Verhalten schreibt und dann überrascht ist, dass es so nicht funktioniert https://www.linux.org.ru/forum/development/14422428#comments. All diese Einsparungen von mehreren Nanosekunden werden im realen Algorithmus (nicht in der nackten Schleife) nicht einmal sichtbar sein.
Erst jetzt habe ich mitbekommen, was Sie gesagt haben.
Ich nehme zurück, dass Sie nicht auf dem Laufenden sind. Ich bitte um Entschuldigung.
Ja, Sie können diese Variante unter der Voraussetzung verwenden, dass die Zahl double im Bereich von -9007199254740992 bis 9007199254740992 (2 hoch 53 (Anzahl der Bits in der Mantisse)) liegt.
Überlegen Sie sich, was Sie außerhalb des ganzzahligen Bereichs erhalten werden.
Wie wäre es damit?
Ergebnis:
der Test scheint vollständige Identität zu zeigen.
Die Geschwindigkeit der alternativen Lösung in diesem Fall, bei der eine Bereichsprüfung durchgeführt wird, ist jedoch um etwa das Zweifache höher (statt 3-8), allerdings nur, wenn die Zahl double im Bereichvon -9007199254740992 bis 9007199254740992 liegt.Außerhalb dieses Bereichs ist sie jedoch viel höher.
der Test scheint vollständige Identität zu zeigen.
Diese Variante berücksichtigt jedoch nicht den Überlauf der Eingangsvariablenvom Typ double, wenn sie die Werte nan, snan annimmt.
Wenn dies berücksichtigt werden muss, können Sie eine weitere Prüfung hinzufügen, aber dennoch wird diese Variante schneller arbeiten als die ursprüngliche Funktion
Erstellen Sie einen EA für einen Tester/Optimierer. Deshalb ist Schnelligkeit in der Praxis wichtig.
Erstellen Sie einen EA für einen Tester/Optimierer. Deshalb ist Geschwindigkeit in der Praxis so wichtig.
Wie viele Leute wissen, mache ich auch glatte Grafiken. Für die Glättung von Grafiken und die Arbeit mit jedem einzelnen Pixel werden Rundungsfunktionen aktiv eingesetzt.
Früher konnte ich mir nicht einmal vorstellen, dass die Rundungsfunktion langsamer ist als die Extraktion der Quadratwurzel aus Double.
Aus diesem Grund habe ich mir angewöhnt, diese Nanosekunden zu unterdrücken. Denn diese Nanosekunden auf der geglätteten Grafik können bei jedem Bild zu Millisekunden werden, und ein Bild kann sich alle 33 Millisekunden ändern.
Wie viele wissen, beschäftige ich mich auch mit Anti-Aliasing-Grafiken. Für eine flüssige Grafik und die Arbeit mit jedem Pixel werden die Rundungsfunktionen aktiv genutzt.
Aus diesem Grund habe ich mich bemüht, diese Nanosekunden zu glätten. Denn diese Nanosekunden auf den geglätteten Grafiken können bei jedem Bild zu Millisekunden werden, und ein Bild kann sich alle 33 Millisekunden ändern.
Dies ist natürlich für die Grafik wichtig. Deshalb gibt es dort schon seit langem algorithmische Optimierungen für fast alle gängigen Aufgaben.
Dies ist natürlich für die Grafik wichtig. Deshalb gibt es dort schon seit langem algorithmische Optimierungen für fast alle gängigen Aufgaben.
Sie irren sich. Das Feld ist immer noch nicht gepflügt, und was gepflügt ist, ist geschlossen. Und in MQL umso mehr. CCanvas Klasse ist sehr weit von Optimalität und es gibt fast keine Antialiasing und was es von Antialiasing ist unbefriedigend.
Warum verwenden Sie nicht LONG_MAX/MIN? Das würde irgendwie schöner aussehen. Es sieht gut aus, finde ich. Ich lief Ihre Tests mit gcc (mit min Änderung, natürlich, sehr alten Compiler 5.4.0, was ich zur Hand hatte):
1. Kompilieren mit -O3.
2. Kompilieren mit -Ofast
Ihr Code hat ein Problem mit der Zeitberechnung - die Ausgabe erfolgt in Millisekunden (nicht in Nanosekunden), und ich verstehe immer noch nicht, warum Sie minus t0 benötigen.
Falsch. Es gibt noch ein ungepflügtes Feld, und was gepflügt ist, ist geschlossen.
Ich habe von der weltweiten Erfahrung gesprochen. Schauen Sie sich die Algorithmen in den thematischen Foren an, in denen Diagrammdemos erstellt werden. Die Leute teilen ihre schnellen Algorithmen.
Ich habe von der weltweiten Erfahrung gesprochen. Suchen Sie nach Algorithmen in den thematischen Foren, in denen Graph-Demos erstellt werden. Die Menschen tauschen schnelle Algorithmen aus.