Ist operator[] langsamer als ein Iterator?
-
hast du das als release mit allen optimierungen getestet? müsste dann eigentlich beides denselben asm code ergeben.
-
endline schrieb:
Ausgabe:
Timer 0 took 2.98 seconds
Timer 1 took 8.35 secondsHatte in etwa die selben Zahlen raus, nachdem ich -O3 noch hinzugefügt habe bin ich auf um die 10tel Sekunde gekommen. Erstaunlich wie gut der Compiler optimieren kann

-
KasF schrieb:
endline schrieb:
Ausgabe:
Timer 0 took 2.98 seconds
Timer 1 took 8.35 secondsHatte in etwa die selben Zahlen raus, nachdem ich -O3 noch hinzugefügt habe bin ich auf um die 10tel Sekunde gekommen. Erstaunlich wie gut der Compiler optimieren kann

Kannst du die Ausgabe mit -O3 mal bitte zeigen?
Edit: Vermutlich macht das optimierte Programm gar nichts, da 'a' nicht verwendet und die Schleife auch nicht durchlaufen wird...
-
Bitte:
Timer 0 took 0.062 seconds Timer 1 took 0.141 seconds
-
Danke.
-
Timer 0 took 3.531 seconds Timer 1 took 1.062 secondswindoofs, vs express (release, optimize for speed), etwas älterer PC
vor beide 'int a' in der main noch ein 'volatile' davorgesetzt
edit: ohne volatile
Timer 0 took 0.562 seconds Timer 1 took 0.391 seconds
-
pale dog schrieb:
Timer 0 took 3.531 seconds Timer 1 took 1.062 secondsJa, woran liegt's? was sagt die Disassembly? Ist das Ergebnis reproduzierbar?
-
pale dog schrieb:
Timer 0 took 3.531 seconds Timer 1 took 1.062 secondswindoofs, vs express (release, optimize for speed), etwas älterer PC
vor beide 'int a' in der main noch ein 'volatile' davorgesetzt
füg mal noch
#define _SECURE_SCL 0ein. Bereichsüberprüfungen wollen wir schließlich nicht ausmessen.
-
Konrad Rudolph schrieb:
Ist das Ergebnis reproduzierbar?
nö,

reproduzierbar ist etwa das:Timer 0 took 1.094 seconds Timer 1 took 1.078 secondsbei meinem ersten versuch haben wohl andere tasks dazwischengefunkt.

-
camper schrieb:
füg mal noch
#define _SECURE_SCL 0ein. Bereichsüberprüfungen wollen wir schließlich nicht ausmessen.
ändert nix, hatte schon vorher in den projekteinstellungen die bereichsüberprüfung ausgeschaltet

btw: mit volatile liegen bei mir beide etwa bei einer sekunde, ohne volatile hatte ich mal eben:Timer 0 took 0.016 seconds Timer 1 took 0 secondsda war wohl gerade scheduler- und interruptmässig nicht viel los
