Skip to content

Commit

Permalink
feat: better release mode
Browse files Browse the repository at this point in the history
  • Loading branch information
graelo committed Jun 1, 2022
1 parent 4ad2adc commit 169636b
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 0 deletions.
23 changes: 23 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,26 @@ path = "src/bin/copyrat.rs"
[[bin]]
name = "tmux-copyrat"
path = "src/bin/tmux_copyrat.rs"

[profile.release]
# Enable link-time optimization (LTO). It’s a kind of whole-program or
# inter-module optimization as it runs as the very last step when linking the
# different parts of your binary together. You can think of it as allowing
# better inlining across dependency boundaries (but it’s of course more
# complicated that that).
#
# Rust can use multiple linker flavors, and the one we want is “optimize across
# all crates”, which is called “fat”. To set this, add the lto flag to your
# profile:
lto = "fat"

# To speed up compile times, Rust tries to split your crates into small chunks
# and compile as many in parallel as possible. The downside is that there’s
# less opportunities for the compiler to optimize code across these chunks. So,
# let’s tell it to do one chunk per crate:
codegen-units = 1

# Rust by default uses stack unwinding (on the most common platforms). That
# costs performance, so let’s skip stack traces and the ability to catch panics
# for reduced code size and better cache usage:
panic = "abort"
2 changes: 2 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
release:
RUSTFLAGS="-Ctarget-cpu=native" cargo build --release

0 comments on commit 169636b

Please sign in to comment.