diff --git a/Cargo.toml b/Cargo.toml index fea4275..682357a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -65,7 +65,7 @@ tokio-stream = { version = "0.1.19", features = ["sync"] } reqwest = { version = "0.13.5", default-features = false, features = ["json"] } # The daemon's memory allocator; see bin/bgp/src/main.rs. With its # statistics, which the status page and the metrics show. -tikv-jemallocator = { version = "0.7.0", features = ["stats", "background_threads"] } +tikv-jemallocator = { version = "0.7.0", features = ["stats"] } tikv-jemalloc-ctl = { version = "0.7.0", features = ["stats"] } # `cargo build --profile profiling`: the release build, with the line tables diff --git a/bin/bgp/Cargo.toml b/bin/bgp/Cargo.toml index c41fef0..42c0c24 100644 --- a/bin/bgp/Cargo.toml +++ b/bin/bgp/Cargo.toml @@ -23,6 +23,12 @@ tracing-subscriber.workspace = true [target.'cfg(not(target_env = "msvc"))'.dependencies] tikv-jemallocator.workspace = true +# jemalloc's background thread returns freed memory to the kernel on time +# (see the memory figures on the status page); jemalloc has it on Linux +# only, and warns at every start elsewhere if asked for it. +[target.'cfg(target_os = "linux")'.dependencies] +tikv-jemallocator = { workspace = true, features = ["background_threads"] } + [features] # jemalloc's heap profiler, for scripts/profile/full-table.sh with # HEAP=1: not for a production build, where it costs memory and time.