mirror of
https://github.com/swc-project/swc.git
synced 2024-12-01 18:31:35 +03:00
8d5670e72b
**Description:** This is a part of https://github.com/swc-project/swc/pull/9230. I profiled the performance, and `thread_local` took too long to get the address of the thread-local variable. So, I inlined the reference into the allocator. # Benchmark result ``` Gnuplot not found, using plotters backend common/allocator/alloc/std/1000000 time: [4.9478 ms 4.9653 ms 4.9922 ms] Found 17 outliers among 100 measurements (17.00%) 4 (4.00%) high mild 13 (13.00%) high severe common/allocator/alloc/no-scope/1000000 time: [5.4821 ms 5.4938 ms 5.5068 ms] Found 17 outliers among 100 measurements (17.00%) 2 (2.00%) high mild 15 (15.00%) high severe common/allocator/alloc/scoped/1000000 time: [3.1401 ms 3.1456 ms 3.1518 ms] Found 12 outliers among 100 measurements (12.00%) 3 (3.00%) high mild 9 (9.00%) high severe common/allocator/alloc/cached-no-scope/1000000 time: [5.0992 ms 5.1090 ms 5.1198 ms] Found 11 outliers among 100 measurements (11.00%) 2 (2.00%) high mild 9 (9.00%) high severe common/allocator/alloc/cached-scoped/1000000 time: [3.0191 ms 3.0230 ms 3.0273 ms] Found 11 outliers among 100 measurements (11.00%) 2 (2.00%) low mild 1 (1.00%) high mild 8 (8.00%) high severe ```
40 lines
1017 B
TOML
40 lines
1017 B
TOML
[package]
|
|
authors = ["강동윤 <kdy1997.dev@gmail.com>"]
|
|
description = "A thin wrapper for bumpalo"
|
|
documentation = "https://rustdoc.swc.rs/swc_allocator/"
|
|
edition = "2021"
|
|
license = "Apache-2.0"
|
|
name = "swc_allocator"
|
|
repository = { workspace = true }
|
|
version = "0.1.2"
|
|
|
|
[features]
|
|
rkyv = ["dep:rkyv"]
|
|
serde = ["dep:serde", "dep:serde_derive"]
|
|
|
|
[dependencies]
|
|
allocator-api2 = { workspace = true, features = ["serde"] }
|
|
bumpalo = { workspace = true, features = [
|
|
"allocator-api2",
|
|
"boxed",
|
|
"collections",
|
|
] }
|
|
ptr_meta = { workspace = true }
|
|
rkyv = { workspace = true, optional = true }
|
|
scoped-tls = { workspace = true }
|
|
serde = { workspace = true, optional = true }
|
|
serde_derive = { workspace = true, optional = true }
|
|
triomphe = "0.1.13"
|
|
|
|
|
|
[dev-dependencies]
|
|
criterion = { workspace = true }
|
|
|
|
codspeed-criterion-compat = { workspace = true }
|
|
swc_malloc = { version = "0.5.10", path = "../swc_malloc" }
|
|
|
|
|
|
[[bench]]
|
|
harness = false
|
|
name = "bench"
|