103

Rust には、これら 3 つのフレーバーのいずれかで使用できる「インライン」属性があります。

#[inline]

#[inline(always)]

#[inline(never)]

いつ使用する必要がありますか?

Rust リファレンスでは、インライン属性セクションに次のように書かれています。

コンパイラは、内部ヒューリスティックに基づいて関数を自動的にインライン化します。関数を不適切にインライン化すると、実際にはプログラムが遅くなる可能性があるため、注意して使用する必要があります。

Rust internals フォーラムでは、huon はinline の指定についても保守的でした。

しかし、標準ライブラリを含む Rust ソースでかなりの使用が見られます。多くのインライン属性が 1 行の関数に追加されます。これは、コンパイラーがリファレンスに従ってヒューリスティックを介して簡単に見つけて最適化できるはずです。それらは実際には必要ありませんか?

4

1 に答える 1