Skip to content

Comments

chore: use lto: thin in profile mode for better profiling experience.#6320

Merged
graphite-app[bot] merged 1 commit intomainfrom
09-24-chore_use_thin_in_profile_mode
Sep 24, 2025
Merged

chore: use lto: thin in profile mode for better profiling experience.#6320
graphite-app[bot] merged 1 commit intomainfrom
09-24-chore_use_thin_in_profile_mode

Conversation

@IWANABETHATGUY
Copy link
Member

@IWANABETHATGUY IWANABETHATGUY commented Sep 24, 2025

image

According to my experiment, thin is only a little smaller than fat, and for an incremental release rebuild,
lto: fat cost about 2min30s, but lto: thin only took 1min31s, that's 40% compile time improvement. It is fine to keep lto: fat in release mode, since it has theoretically better performance and smaller binary size, but we don't need it in profile mode, which may run multiple times in short term.

Copy link
Member Author


How to use the Graphite Merge Queue

Add the label graphite: merge to this PR to add it to the merge queue.

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@netlify
Copy link

netlify bot commented Sep 24, 2025

Deploy Preview for rolldown-rs canceled.

Name Link
🔨 Latest commit 5eb6049
🔍 Latest deploy log https://app.netlify.com/projects/rolldown-rs/deploys/68d384fa633f870008312c66

@IWANABETHATGUY IWANABETHATGUY marked this pull request as ready for review September 24, 2025 05:12
@IWANABETHATGUY IWANABETHATGUY changed the title chore: use thin in profile mode chore: use lto: thin in profile mode Sep 24, 2025
@IWANABETHATGUY IWANABETHATGUY changed the title chore: use lto: thin in profile mode chore: use lto: thin in profile mode for better profiling experience. Sep 24, 2025
@graphite-app
Copy link
Contributor

graphite-app bot commented Sep 24, 2025

Merge activity

…e. (#6320)

<img width="1681" height="296" alt="image" src="https://github.com/user-attachments/assets/4cf47982-03c3-470b-b4d8-0ff0ede29da9" />

According to my experiment, `thin` is only a little smaller than `fat`, and for an incremental release rebuild,
`lto: fat` cost about 2min30s, but `lto: thin` only took 1min31s, that's 40% compile time improvement. It is fine to keep  `lto: fat` in release mode, since it has theoretically better performance and smaller binary size, but we don't need it in `profile` mode, which may run multiple times in short term.
@graphite-app graphite-app bot force-pushed the 09-24-chore_use_thin_in_profile_mode branch from d2f8609 to 5eb6049 Compare September 24, 2025 05:43
@graphite-app graphite-app bot merged commit 5eb6049 into main Sep 24, 2025
25 checks passed
@graphite-app graphite-app bot deleted the 09-24-chore_use_thin_in_profile_mode branch September 24, 2025 05:53
shulaoda pushed a commit that referenced this pull request Sep 24, 2025
## [1.0.0-beta.40] - 2025-09-24

⚡ Sourcemap Performance Boost
- 20%-30% faster sourcemap generation
- Consistent gains across all platforms

### 🚀 Features

- rolldown: oxc v0.92.0 (#6322) by @Boshen
- adding partial `MagicString` binding (#6289) by @IWANABETHATGUY
- rolldown_plugin_vite_html: initialize (#6292) by @shulaoda

### 🐛 Bug Fixes

- rolldown_plugin_react_refresh_wrapper: avoid using cwd to allow using as a callable plugin (#6318) by @sapphi-red
- rolldown_plugin_transform: resolve tsconfig from absolute path (#6311) by @shulaoda

### 🚜 Refactor

- Construct MagicString with `Cow<str>` instead of `&str` (#6288) by @IWANABETHATGUY
- throw error if generating oxc runtime helper fails (#6291) by @shulaoda

### 📚 Documentation

- add more description about sourcemapIgnoreList (#6314) by @IWANABETHATGUY

### ⚡ Performance

- reduce `sourcemap_ignore_list` js function call (#6313) by @IWANABETHATGUY
- string_wizard: use memchr to find patterns in `replace` (#6312) by @IWANABETHATGUY
- simplify sourcemap token processing in collapse_sourcemaps (#6310) by @IWANABETHATGUY
- rolldown: some minor perf optimization (#6306) by @Brooooooklyn
- rolldown: fine-tuning the tokio scheduler (#6272) by @Brooooooklyn

### ⚙️ Miscellaneous Tasks

- deps: lock file maintenance rust crates (#6302) by @renovate[bot]
- deps: lock file maintenance npm packages (#6301) by @renovate[bot]
- use `lto: thin` in profile mode for better profiling experience. (#6320) by @IWANABETHATGUY
- adjust the tokio runtime config in bench (#6305) by @Brooooooklyn
- deps: update dependency rolldown-plugin-dts to v0.16.8 (#6307) by @renovate[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants