swc/crates/swc_allocator/Cargo.toml
Donny/강동윤 8d5670e72b
refactor(allocator): Use & instead of a thread-local (#9235)
**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
```
2024-07-15 00:37:38 +09:00

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"