new flamegraph and sort unstable

This commit is contained in:
Toshit Chawda 2024-12-13 22:25:17 -08:00
parent 8193c06c8e
commit 6c437d528f
No known key found for this signature in database
GPG key ID: 91480ED99E2B3D9D
7 changed files with 23 additions and 22 deletions

View file

@ -11,4 +11,4 @@ panic = "abort"
[workspace.dependencies]
oxc = "0.41.0"
url = "2.5.4"

View file

@ -6,8 +6,8 @@ edition = "2021"
[dependencies]
anyhow = "1.0.94"
oxc = { workspace = true }
url = { workspace = true }
rewriter = { version = "0.1.0", path = "../rewriter", features = ["debug"] }
url = "2.5.4"
urlencoding = "2.1.3"
[dev-dependencies]

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 8.6 MiB

After

Width:  |  Height:  |  Size: 8.8 MiB

Before After
Before After

View file

@ -30,30 +30,27 @@ fn dorewrite(data: &str) -> Result<RewriteResult> {
capture_errors: true,
do_sourcemaps: true,
scramitize: false,
scramitize: true,
strict_rewrites: true,
},
)
.context("failed to rewrite file")
}
fn dobench(data: String) {
loop {
let _ = dorewrite(&data);
}
}
fn main() -> Result<()> {
let file = env::args().nth(1).unwrap_or_else(|| "test.js".to_string());
let data = fs::read_to_string(file).context("failed to read file")?;
let bench = env::args().nth(2).is_some();
if bench {
for _ in 0..15 {
let data = data.clone();
std::thread::spawn(move || dobench(data));
let mut i = 0;
loop {
let _ = dorewrite(&data);
i += 1;
if i % 100 == 0 {
println!("{}...", i);
}
}
dobench(data);
} else {
let res = dorewrite(&data)?;

View file

@ -5,9 +5,9 @@ edition = "2021"
[dependencies]
oxc = { workspace = true }
url = { workspace = true }
smallvec = "1.13.2"
thiserror = "2.0.6"
url = "2.5.4"
[features]
debug = []

View file

@ -361,11 +361,15 @@ pub(crate) struct JsChanges {
impl JsChanges {
pub fn new() -> Self {
Self { inner: Vec::new() }
Self {
inner: Default::default(),
}
}
pub fn add(&mut self, change: Rewrite) {
self.inner.extend(change.into_inner());
pub fn add(&mut self, rewrite: Rewrite) {
for change in rewrite.into_inner() {
self.inner.push(change);
}
}
pub fn perform<E>(&mut self, js: &str, cfg: &Config<E>) -> Result<JsChangeResult, RewriterError>
@ -374,7 +378,7 @@ impl JsChanges {
E: Clone,
{
let mut offset = 0;
let mut buffer = Vec::with_capacity(((js.len() as u64 * 120) / 100) as usize);
let mut buffer = Vec::with_capacity(js.len() * 2);
macro_rules! tryget {
($range:expr) => {
@ -385,7 +389,7 @@ impl JsChanges {
// TODO: add sourcemaps
let map = Vec::with_capacity(js.len() * 2);
self.inner.sort();
self.inner.sort_unstable();
for change in &self.inner {
let span = change.get_span();

View file

@ -10,9 +10,9 @@ crate-type = ["cdylib"]
instant = { version = "0.1.13", features = ["wasm-bindgen"] }
js-sys = "0.3.76"
oxc = { workspace = true }
url = { workspace = true }
rewriter = { version = "0.1.0", path = "../rewriter" }
thiserror = "2.0.6"
url = "2.5.4"
wasm-bindgen = "0.2.99"
web-sys = { version = "0.3.76", features = ["Url"] }