Rust hat ein "Inline" -Attribut, das in einer dieser drei Varianten verwendet werden kann:
#[inline]
#[inline(always)]
#[inline(never)]
Wann sollten sie verwendet werden?
In der Rust-Referenz sehen wir einen Abschnitt mit Inline-Attributen , in dem steht
Der Compiler fügt Funktionen basierend auf internen Heuristiken automatisch ein. Falsches Inlining kann das Programm tatsächlich verlangsamen, daher sollte es mit Vorsicht verwendet werden.
Im Rust Internals Forum war Huon auch konservativ in Bezug auf die Angabe von Inline .
Wir sehen jedoch eine beträchtliche Verwendung in der Rust-Quelle, einschließlich der Standardbibliothek. Einzeiligen Funktionen werden viele Inline-Attribute hinzugefügt, die für die Compiler leicht zu erkennen und durch Heuristiken gemäß der Referenz zu optimieren sein sollten. Werden diese tatsächlich nicht benötigt?
quelle
inline(never)
für die Panik-Intrinsics verwendet wird, um sicherzustellen, dass das Optimierungsprogramm keine Funktionen integriert, die nur im Panikfall aufgerufen werden.