クレート分割の注意点
rurubyを複数クレートに分割する作業をしている。
最初のステップとして "ruruby" "ruruby-parser" "ruruby-common"の3クレートに分割した。
分割したとたんにベンチマークが2割程度悪化した。(下グラフ、青:分割前 赤:分割後)
できたバイナリを調べると、関数のインライン化が抑制されているらしいことに気づいた。
LTOオプションをつけると一部のベンチマークのみ改善。
#[inline]ヒントを付与することでクレート分割前と同レベルまで改善した。
https://gyazo.com/609d8ade9502ccca3d17e88e2a10c9b7