Skip to content

perf(rolldown_plugin_vite_import_glob): skip self-import earlier using raw path comparison#9193

Merged
shulaoda merged 1 commit intomainfrom
04-22-perf_rolldown_plugin_vite_import_glob_skip_self-import_earlier_using_raw_path_comparison
Apr 22, 2026
Merged

perf(rolldown_plugin_vite_import_glob): skip self-import earlier using raw path comparison#9193
shulaoda merged 1 commit intomainfrom
04-22-perf_rolldown_plugin_vite_import_glob_skip_self-import_earlier_using_raw_path_comparison

Conversation

@shulaoda
Copy link
Copy Markdown
Member

Summary

  • Skip self-import earlier in GlobImportVisit by comparing the raw entry path against self.id at the top of the loop, before computing the relative import_path.
  • Remove the pre-loop self_path computation and the later self_path == import_path check, since the new early exit makes them redundant.

Motivation

Previously, every matched entry required building a relative import_path before we could detect and skip the self-import case. By comparing against self.id directly against the slash-normalized entry path, we short-circuit sooner and avoid unnecessary relative-path work for the skipped entry.

@netlify
Copy link
Copy Markdown

netlify Bot commented Apr 22, 2026

Deploy Preview for rolldown-rs canceled.

Name Link
🔨 Latest commit b29d44c
🔍 Latest deploy log https://app.netlify.com/projects/rolldown-rs/deploys/69e84445c9cb910008dfe25d

@codspeed-hq
Copy link
Copy Markdown

codspeed-hq Bot commented Apr 22, 2026

Merging this PR will not alter performance

✅ 4 untouched benchmarks
⏩ 10 skipped benchmarks1


Comparing 04-22-perf_rolldown_plugin_vite_import_glob_skip_self-import_earlier_using_raw_path_comparison (b29d44c) with main (1b71210)2

Open in CodSpeed

Footnotes

  1. 10 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

  2. No successful run was found on main (1ed4305) during the generation of this report, so 1b71210 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

@shulaoda shulaoda merged commit 75bb10b into main Apr 22, 2026
34 checks passed
@shulaoda shulaoda deleted the 04-22-perf_rolldown_plugin_vite_import_glob_skip_self-import_earlier_using_raw_path_comparison branch April 22, 2026 05:21
This was referenced Apr 22, 2026
shulaoda added a commit that referenced this pull request Apr 22, 2026
## [1.0.0-rc.17] - 2026-04-22

### 🐛 Bug Fixes

- link: error on missing export between TS modules (#9197) by @IWANABETHATGUY
- rolldown_plugin_vite_import_glob: import path should not be affected by absolute base option (#9145) by @kermanx
- `this.resolve()` returns null for bare relative paths without importer (#9142) by @Copilot
- collect destructured bindings in HMR module exports (#9146) by @h-a-n-a
- esbuild-tests: handle 0.28.0 test cases (#9149) by @sapphi-red
- plugin/copy-module: honor external resolutions from other plugins (#9139) by @TheAlexLichter
- allow undefined in sourcesContent type (#9136) by @jurijzahn8019
- reduce false positives in chunk optimizer circular dependency detection (#9049) by @AlonMiz

### 🚜 Refactor

- chunk-optimizer: extract runtime-module placement into rehome_runtime_module (#9163) by @IWANABETHATGUY

### 📚 Documentation

- add design doc for sort_modules execution ordering (#9169) by @IWANABETHATGUY
- add document for `RenderedModule` (#9147) by @sapphi-red

### ⚡ Performance

- rolldown_plugin_vite_import_glob: skip self-import earlier using raw path comparison (#9193) by @shulaoda

### 🧪 Testing

- lazy: add `playground/lazy-compilation` (#7974) by @hyf0

### ⚙️ Miscellaneous Tasks

- use app token for release PR (#9198) by @Boshen
- upgrade oxc to 0.127.0 (#9194) by @Dunqing
- use oxc security action (#9196) by @Boshen
- esbuild-tests: remove some tests from ignored list as enum inline is now supported (#9184) by @sapphi-red
- deps: update dependency vite-plus to v0.1.19 (#9183) by @renovate[bot]
- use vp instead of pnpm in check-wasi-binding-deps (#9182) by @shulaoda
- verify wasm32-wasi binding deps match @rolldown/browser before publish (#9162) by @shulaoda
- deps: update esbuild for tests to 0.28.0 (#9172) by @sapphi-red
- deps: update rollup submodule for tests to v4.60.2 (#9173) by @sapphi-red
- deps: update test262 submodule for tests (#9174) by @sapphi-red
- sort_modules: fix stale async-entry sort key comment (#9170) by @IWANABETHATGUY
- deps: update npm packages (#9157) by @renovate[bot]
- deps: update dependency diff to v9 (#9158) by @renovate[bot]
- deps: update rust crates (#9156) by @renovate[bot]
- run Windows CI on PRs labeled with `ci: windows` (#9153) by @hyf0
- update-test-dependencies: run setup-rust before file changes (#9151) by @sapphi-red
- deps: update dependency rust to v1.95.0 (#9140) by @renovate[bot]

### ❤️ New Contributors

* @jurijzahn8019 made their first contribution in [#9136](#9136)
* @AlonMiz made their first contribution in [#9049](#9049)

---------

Co-authored-by: shulaoda <165626830+shulaoda@users.noreply.github.com>
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