You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It's an issue very similar to googlefonts/fontc#1359 about enabling LTO and codegen-units = 1 optimizations for the project. Motivation is also the same: more aggressive optimizations and smaller binary sizes. I found other benchmarks about LTO like #1171 and #1172 - also with positive results.
I have made quick tests (AMD Ryzen 5900x, Fedora 41, Rust 1.85.1, the latest version of the project at the moment, cargo build --release command) - here are the results. I don't know which binaries are more or less important, so I report several binaries (that seems like the most important but I could be wrong here).
Binary\Build mode
fauntlet
klippa
otexplorer
codegen
Release
3.1 Mib
4.3 Mib
1.3 Mib
7.7 Mib
Release + codegen-units = 1 + ThinLTO
2.6 Mib
3.4 Mib
1.1 Mib
6.4 Mib
Release + codegen-units = 1 + FatLTO
2.4 Mib
3.0 Mib
1 Mib
5.5 Mib
I didn't post results for the fuzz_* binaries since they are not important much from binary size perspective but enabling LTO for fuzzing purposes could help with performing faster fuzzing.
Clean build times:
Release: 22s
Release + codegen-units = 1 + ThinLTO: 34s
Release + codegen-units = 1 + FatLTO: 42s
Thank you.
The text was updated successfully, but these errors were encountered:
Hi!
It's an issue very similar to googlefonts/fontc#1359 about enabling LTO and
codegen-units = 1
optimizations for the project. Motivation is also the same: more aggressive optimizations and smaller binary sizes. I found other benchmarks about LTO like #1171 and #1172 - also with positive results.I have made quick tests (AMD Ryzen 5900x, Fedora 41, Rust 1.85.1, the latest version of the project at the moment,
cargo build --release
command) - here are the results. I don't know which binaries are more or less important, so I report several binaries (that seems like the most important but I could be wrong here).codegen-units = 1
+ ThinLTOcodegen-units = 1
+ FatLTOI didn't post results for the
fuzz_*
binaries since they are not important much from binary size perspective but enabling LTO for fuzzing purposes could help with performing faster fuzzing.Clean build times:
codegen-units = 1
+ ThinLTO: 34scodegen-units = 1
+ FatLTO: 42sThank you.
The text was updated successfully, but these errors were encountered: