Without enabling link time optimization (LTO) there will never be any inlining across crate boundaries. These methods will be mostly called from other crates, they are small and used in hot loops.
On a branch of rust-png-reader that was made to use Circular this change reduced the runtime of one benchmark test from 3 minutes 30 seconds to 1 minute 40 seconds (so over 50%).
(The benchmark is running the example/stats binary on a large (50GB) PGN file downloaded from the lichess DB)
Without enabling link time optimization (LTO) there will never be any inlining across crate boundaries. These methods will be mostly called from other crates, they are small and used in hot loops.
On a branch of rust-png-reader that was made to use Circular this change reduced the runtime of one benchmark test from 3 minutes 30 seconds to 1 minute 40 seconds (so over 50%).
(The benchmark is running the example/stats binary on a large (50GB) PGN file downloaded from the lichess DB)