In meinem JPG-Decoder habe ich eine Schleife mit einer if-Anweisung, die je nach Bild immer wahr oder immer falsch sein wird. Ich könnte zwei getrennte Funktionen machen, um die if-Anweisung zu vermeiden, aber ich frage mich aus Neugierde, wie der Effekt auf die Effizienz einen Funktionszeiger anstelle der if-Anweisung verwenden würde. Es zeigt auf die Inline-Funktion, wenn es wahr ist, oder zeigt auf eine leere Inline-Funktion, wenn es falsch ist.Inline-Funktionszeiger zu vermeiden, wenn Anweisung
Könnte das schneller als eine if-Anweisung sein? Meine Schätzung ist nein, weil das Inline wird nutzlos sein, da der Compiler nicht wissen, welche Funktion zum Kompilieren inline und die Funktion Zeigeradresse Auflösung ist langsamer als eine if-Anweisung.
Ich habe mein Programm profiliert, und während ich einen merklichen Unterschied erwartet habe, habe ich keinen merklichen Unterschied festgestellt. Ich wundere mich nur aus Neugier.
Kennen Sie über [Zweigvorhersage] (https://en.wikipedia.org/wiki/Branch_predictor)? Kommt das für dich rein? – Mike
Ich habe erkannt, dass ich die if-Anweisung einfach wirklich vermeiden sollte, da sie immer wahr oder immer falsch ist. – deanresin
@deanresin sollten Sie an Ihrer Namenskonvention arbeiten: 'trueorfalse',' dootherstuff'. – Mahdi