Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 3366981

Browse files
committed
perf: bump string_wizard for better performance
1 parent 6601e88 commit 3366981

13 files changed

Lines changed: 31 additions & 7 deletions

File tree

Cargo.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ serde_json = "1.0.108"
2323
insta = "1.34.0"
2424
testing_macros = "0.2.11"
2525
scoped-tls = "1.0.1"
26-
string_wizard = { version = "0.0.14" }
26+
string_wizard = { version = "0.0.16" }
2727
async-trait = "0.1.74"
2828
futures = "0.3.29"
2929
thiserror = "1.0.50"

crates/rolldown/examples/basic.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ use sugar_path::SugarPathBuf;
55

66
#[tokio::main]
77
async fn main() -> Result<()> {
8+
let _guard = rolldown_tracing::try_init_tracing_with_chrome_layer();
89
let root = PathBuf::from(&std::env::var("CARGO_MANIFEST_DIR").unwrap());
910
let cwd = root.join("./examples").into_normalize();
1011
let mut bundler = Bundler::new(InputOptions {
11-
input: vec![InputItem { name: Some("basic".to_string()), import: "./index.js".to_string() }],
12+
input: vec![InputItem { name: Some("basic".to_string()), import: "react-dom".to_string() }],
1213
cwd,
1314
..Default::default()
1415
});

crates/rolldown/src/bundler/chunk/render_chunk_exports.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,14 @@ impl Chunk {
1717
if matches!(linking_info.wrap_kind, WrapKind::Cjs) {
1818
match output_options.format {
1919
OutputFormat::Esm => {
20-
let wrap_ref_name = &self.canonical_names[&linking_info.wrap_ref.unwrap()];
20+
let wrap_ref_name =
21+
&self.canonical_names.get(&linking_info.wrap_ref.unwrap()).unwrap_or_else(|| {
22+
panic!(
23+
"Cannot find canonical name for wrap ref {:?} of {:?}",
24+
linking_info.wrap_ref.unwrap(),
25+
graph.modules[entry].resource_id()
26+
)
27+
});
2128
return Some(MagicString::new(format!("export default {wrap_ref_name}();\n")));
2229
}
2330
}

crates/rolldown/src/bundler/module/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ impl Module {
7272
}
7373
}
7474

75+
#[tracing::instrument(skip_all)]
7576
pub fn render(&self, ctx: ModuleRenderContext) -> Option<MagicString<'_>> {
7677
match self {
7778
Self::Normal(m) => m.render(ctx),

crates/rolldown/src/bundler/module_loader/normal_module_task.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ impl<'task, T: FileSystem + Default + 'static> NormalModuleTask<'task, T> {
5858
}
5959
}
6060

61+
#[tracing::instrument(skip_all)]
6162
pub async fn run(mut self) -> BatchedResult<()> {
6263
let mut builder = NormalModuleBuilder::default();
6364
tracing::trace!("process {:?}", self.path);
@@ -204,6 +205,7 @@ impl<'task, T: FileSystem + Default + 'static> NormalModuleTask<'task, T> {
204205
Ok(info)
205206
}
206207

208+
#[tracing::instrument(skip_all)]
207209
async fn resolve_dependencies(
208210
&mut self,
209211
dependencies: &IndexVec<ImportRecordId, RawImportRecord>,

crates/rolldown/src/bundler/module_loader/runtime_normal_module_task.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ impl RuntimeNormalModuleTask {
2929
Self { module_id: id, tx, warnings: Vec::default() }
3030
}
3131

32+
#[tracing::instrument(skip_all)]
3233
pub fn run(self) {
3334
let mut builder = NormalModuleBuilder::default();
3435

crates/rolldown/src/bundler/renderer/impl_visit.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,14 @@ use crate::bundler::{module::Module, renderer::RenderControl};
1111
use super::AstRenderer;
1212

1313
impl<'ast, 'r> Visit<'ast> for AstRenderer<'r> {
14+
#[tracing::instrument]
15+
fn visit_program(&mut self, program: &ast::Program<'ast>) {
16+
for directive in &program.directives {
17+
self.visit_directive(directive);
18+
}
19+
self.visit_statements(&program.body);
20+
}
21+
1422
fn visit_binding_identifier(&mut self, ident: &oxc::ast::ast::BindingIdentifier) {
1523
self.render_binding_identifier(ident);
1624
}

crates/rolldown/src/bundler/stages/scan_stage.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ impl<Fs: FileSystem + Default + 'static> ScanStage<Fs> {
6868
}
6969

7070
/// Resolve `InputOptions.input`
71+
#[tracing::instrument(skip_all)]
7172
fn resolve_user_defined_entries(
7273
&self,
7374
) -> BatchedResult<Vec<(Option<String>, ResolvedRequestInfo)>> {

crates/rolldown/src/bundler/visitors/scanner.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,7 @@ impl<'a> Scanner<'a> {
299299
}
300300

301301
impl<'ast> Visit<'ast> for Scanner<'ast> {
302+
#[tracing::instrument(skip_all)]
302303
fn visit_program(&mut self, program: &oxc::ast::ast::Program<'ast>) {
303304
for (idx, stmt) in program.body.iter().enumerate() {
304305
self.current_stmt_info.stmt_idx = Some(idx);

0 commit comments

Comments
 (0)