functionpointer (geschwindigkeit)
-
hi
stimmt es, das f-zeiger beim aufruf gleich schnell sind, wie ein normaler aufruf ?
-
Nein, im allgemeinen ist ein Aufruf über einen Funktionspointer langsamer.
-
Probiers doch aus...
Schreib ein ganz kleines Testprogramm ohne zusätzliche Bibliotheken mit einer Testfunktion, die nur ein einen Int zurückliefert.
Dann rufst du die Funktion einmal direkt, und einmal über einen Pointer auf.Dann sagst du dem Compiler, er soll nicht Assemblieren, sondern nur ein Assemblerlisting generieren (z.B. Visual C kann sogar die Zeilennummern und Befehle als Kommentare mit reinschreiben).(Nicht optimieren.)
Also sollte es recht übersichtlich und gut zu vergleichen sein.Das Ergebnis würde mich auch interessieren, bin selber bloß zu faul dazu;)
-
SeppSchrot schrieb:
Das Ergebnis würde mich auch interessieren, bin selber bloß zu faul dazu;)
Dürfte keine großen Überaschungen geben...
-
SeppSchrot: Für den Funktionspointer wird der Compiler ein indirektes CALL generieren, während bei der normalen Funktion die Adresse zur Linkzeit bekannt ist und somit direkt im CALL-Befehl abgelegt werden kann.