mirror of
https://github.com/MercuryWorkshop/scramjet.git
synced 2025-05-13 14:30:02 -04:00
new flamegraph and sort unstable
This commit is contained in:
parent
8193c06c8e
commit
6c437d528f
7 changed files with 23 additions and 22 deletions
|
@ -11,4 +11,4 @@ panic = "abort"
|
|||
|
||||
[workspace.dependencies]
|
||||
oxc = "0.41.0"
|
||||
|
||||
url = "2.5.4"
|
||||
|
|
|
@ -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 |
|
@ -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)?;
|
||||
|
||||
|
|
|
@ -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 = []
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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"] }
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue