2016-09-03 6 views
0

Ich habe nie auf inline irgendeine Funktion gestört, und ich bin ziemlich unvertraut mit, wie es funktioniert. Würde diese Funktion davon profitieren, inline d zu sein?Name von ID bekommen

+0

Warum haben Sie nicht versucht, die Ergebnisse zu vergleichen? – Mast

Antwort

2

Eine Funktion inline zu machen bedeutet, dass alle Funktionen, die sie aufrufen, den Code tatsächlich in der aufrufenden Funktion durch den Compiler eingebettet haben. Manchmal führt dies zu einer Leistungssteigerung, da der Overhead entfällt.

In älteren Versionen von C++ Inline-Funktionen war mehr Wert, es ist vor allem eine Empfehlung an den Compiler jetzt. Gute Optimierung Compiler werden für Sie inline.

Es gibt nicht genug Code hier, um zu sagen, ob diese Inline-Funktion verwendet wird, weil die Unterstützung der Leistung in der aufrufenden Funktion ist. Wenn diese Funktion in einer Schleife 1000-mal aufgerufen wird, hilft die Inline-Funktion. Wenn es nicht in einer Schleife aufgerufen wird, wird es nicht wirklich helfen.

+1

Gotcha, danke für die Information. Ich nehme an, ich werde es in diesem Fall inline machen. Die for-Schleife, die ich verwende, kann potenziell bis zu 300 Iterationen haben, es scheint inlining in der Tat von Vorteil zu sein. Außerdem werde ich beim nächsten Mal, wenn ich eine Frage bezüglich Code habe, den ich richtig posten kann, auf die Seite "Wie frage ich?" Schauen. – Jeff

+2

@Jeff, wenn die Funktion Elementfunktion der Klasse ist, können Sie sie darüber hinaus als eine const-Funktion markieren. Seien Sie vorsichtig beim Inlining, wenn die Funktion zu groß ist, kann sie die Cache-Zeile verlassen, so dass der nächste Zyklus für einige Zeit stehen bleibt, bevor er beginnt. – Incomputable

+0

Gotcha, vielen Dank für die Informationen. Ich werde eine Perfomanalyse durchführen und entscheiden, ob Inlining tatsächlich einen Unterschied macht. – Jeff