Use tikv-jemallocator instead of jemallocator (#6354)

* Use tikv-jemallocator instead of jemallocator

* Merge branch 'unstable' into tikv-jemallocator

* Bump tikv-jemallocator and tikv-jemalloc-ctl
This commit is contained in:
Håvard Anda Estensen
2024-09-06 05:21:21 +02:00
committed by GitHub
parent c824142a6d
commit 0c5e25b62a
4 changed files with 43 additions and 41 deletions

View File

@@ -8,16 +8,19 @@ edition = { workspace = true }
lighthouse_metrics = { workspace = true }
libc = "0.2.79"
parking_lot = { workspace = true }
jemalloc-ctl = { version = "0.5.0", optional = true }
tikv-jemalloc-ctl = { version = "0.6.0", optional = true, features = ["stats"] }
# Jemalloc's background_threads feature requires Linux (pthreads).
[target.'cfg(target_os = "linux")'.dependencies]
jemallocator = { version = "0.5.0", optional = true, features = ["stats", "background_threads"] }
tikv-jemallocator = { version = "0.6.0", optional = true, features = [
"stats",
"background_threads",
] }
[target.'cfg(not(target_os = "linux"))'.dependencies]
jemallocator = { version = "0.5.0", optional = true, features = ["stats"] }
tikv-jemallocator = { version = "0.6.0", optional = true, features = ["stats"] }
[features]
mallinfo2 = []
jemalloc = ["jemallocator", "jemalloc-ctl"]
jemalloc-profiling = ["jemallocator/profiling"]
jemalloc = ["tikv-jemallocator", "tikv-jemalloc-ctl"]
jemalloc-profiling = ["tikv-jemallocator/profiling"]

View File

@@ -7,12 +7,12 @@
//!
//! A) `JEMALLOC_SYS_WITH_MALLOC_CONF` at compile-time.
//! B) `_RJEM_MALLOC_CONF` at runtime.
use jemalloc_ctl::{arenas, epoch, stats, Error};
use lighthouse_metrics::{set_gauge, try_create_int_gauge, IntGauge};
use std::sync::LazyLock;
use tikv_jemalloc_ctl::{arenas, epoch, stats, Error};
#[global_allocator]
static ALLOC: jemallocator::Jemalloc = jemallocator::Jemalloc;
static ALLOC: tikv_jemallocator::Jemalloc = tikv_jemallocator::Jemalloc;
// Metrics for jemalloc.
pub static NUM_ARENAS: LazyLock<lighthouse_metrics::Result<IntGauge>> =