Commit 24f58e4
committed
chore(perf): FileSystemOs uses std::fs instead of tokio::fs
tokio::fs offloads every syscall to the blocking threadpool (semaphore +
task harness + park/unpark). Resolution issues a large number of tiny
stat/read calls whose kernel time is dwarfed by that per-call scheduling
overhead (~14% of total instructions in the resolver callgrind bench).
std::fs runs them inline, matching the existing wasm impl and the
upstream synchronous resolver.
This only affects the default FileSystemOs (the @rspack/resolver npm
package and the bench). rspack core injects its own async BoxFS via
new_with_file_system, so its real resolution fs path is unchanged.1 parent 02dbd01 commit 24f58e4
1 file changed
Lines changed: 10 additions & 14 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
153 | 153 | | |
154 | 154 | | |
155 | 155 | | |
156 | | - | |
157 | | - | |
| 156 | + | |
| 157 | + | |
158 | 158 | | |
159 | 159 | | |
160 | 160 | | |
161 | 161 | | |
162 | | - | |
| 162 | + | |
163 | 163 | | |
164 | 164 | | |
165 | 165 | | |
| |||
168 | 168 | | |
169 | 169 | | |
170 | 170 | | |
171 | | - | |
172 | | - | |
| 171 | + | |
| 172 | + | |
173 | 173 | | |
174 | 174 | | |
175 | 175 | | |
176 | 176 | | |
177 | | - | |
| 177 | + | |
178 | 178 | | |
179 | 179 | | |
180 | 180 | | |
| |||
187 | 187 | | |
188 | 188 | | |
189 | 189 | | |
190 | | - | |
191 | | - | |
192 | | - | |
| 190 | + | |
193 | 191 | | |
194 | | - | |
| 192 | + | |
195 | 193 | | |
196 | 194 | | |
197 | 195 | | |
198 | 196 | | |
199 | 197 | | |
200 | | - | |
| 198 | + | |
201 | 199 | | |
202 | 200 | | |
203 | 201 | | |
204 | | - | |
205 | | - | |
206 | | - | |
| 202 | + | |
207 | 203 | | |
208 | 204 | | |
209 | 205 | | |
| |||
0 commit comments