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
hat jemand einen compiler installiert? bitte überprüfen! ist das nicht langweilig?
Die Zeit für die Adressierung eines Array-Elements ist IMMER nicht länger als die Zeit für die Adressierung einer Variablen.
Die spezifischen Zahlen werden für die verschiedenen Compiler unterschiedlich sein, aber die Tendenz sollte die gleiche bleiben.
Der Compiler ist Visual Studio 2005. Der Prozessor ist ein Athlon XP 2500+.
Die Ausführungszeit beträgt zusammen mit der Array-Initialisierung 1,06-1,07 Sekunden.
Die gleiche Schleife, aber mit
ergibt 0,37 bis 0,4 Sekunden.
Und schließlich:
0,56-0,6 с.
Daher möchte ich folgende Schlussfolgerung ziehen:
hat nichts mit einem Compiler und nichts mit "Array/Nicht-Array" zu tun, sondern mit der richtigen Datenstrukturierung und korrektem Code!
P.S. Natürlich sind alle obigen Thesen, mit Ausnahme der Zeitmessungen, meine persönliche, zutiefst subjektive und bescheidene Meinung, gerade als Programmierer.
ja, die Optimierung des resultierenden Codes in Compiler ist eine Macht, nachdem alle...
Ich möchte nicht in Details zu erhalten, aber es scheint, dass Visual Studio Copiler Array-Zugriffe selbst optimiert.
Um den Test fair zu gestalten, müssen Sie eine Variable eingeben, sagen wir S; und zwischen allen x,y,z-Zuweisungen etwas einfügen wie S=S+x, S=S+y, S=S+z, und dann S neben der Zeit ausgeben, um die "reine" Geschwindigkeit zu erhalten.
obwohl der Compiler-Optimierer diesen Betrug teilweise herausfinden kann... :)
Solche Gedanken habe ich schon lange verworfen. Ich habe sogar Tests gemacht. Und ich bin zu einem Schluss gekommen:
Der Compiler führt alle vorgeschriebenen Operationen aus und hat einfach kein Recht, sie nicht auszuführen, weil es einfach unmöglich ist, 100%ig zu wissen, von wo aus ich auf diese Variablen zugreifen will - in derselben Methode, von einem Zeitgeber (und strukturell nicht verwandtem Code) oder sogar von einem anderen Prozess aus.
Es ist also alles fair. Geprüft.
P.S. Offtopic, sorry. Ich konnte nicht widerstehen.
was ist das Array, das durch den Parameter in ArrayCopySeries angegeben wird?
ist es ein normales Array mit Werten oder ein Array mit Zeigern auf Werte?
(Das ist natürlich eine dumme Frage, aber ich habe seit 10 Jahren nicht mehr programmiert, schon gar nicht in C und schon gar nicht unter Windows.)
und wo kann man das alles nachlesen?
Ich brauche wirklich...
Gibt es eine Möglichkeit,... Ich weiß es nicht. Ist ein rekursiver Aufruf von start() erlaubt?
Das geht nicht. Der EA wird nicht gestartet, wenn die Schaltfläche deaktiviert ist.
ist erlaubt.
Vielen Dank für Ihre Antwort.
Nun, äh... Und was nun...?
Ich weiß nicht... oder für 5 gehen, aber gestern... und heute für 3... die kleinen.
Ich werde mich mit vielen kleinen zufrieden geben müssen. Ich wollte das nicht. Nun, was jetzt... :(
Es scheint so einfach zu sein...
(nehmen Sie es mir nicht übel, die Meditation spritzt schon über die Tastatur)
Geht es nur mir so, oder soll es so sein?
Sie sind und waren schon immer normal hervorgehoben. Ich habe gerade den 183er Build und den 187er Build überprüft.