The last change built jemalloc with its background thread on, so that freed pages go back to the kernel on time. jemalloc has that thread on Linux only: on macOS every start of the daemon, and every test that starts one, printed "option background_thread currently supports pthread only". The feature now comes from a Linux-only dependency entry of the daemon crate, so the macOS build asks for nothing jemalloc cannot do. The Linux build is as before: measured in the VM with four peers and a collector, resident memory falls after the load without any setting in the environment. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
39 lines
1.2 KiB
TOML
39 lines
1.2 KiB
TOML
[package]
|
|
name = "bgp"
|
|
description = "A Border Gateway Protocol implementation"
|
|
authors.workspace = true
|
|
edition.workspace = true
|
|
homepage.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
version.workspace = true
|
|
|
|
[dependencies]
|
|
bgp-server.workspace = true
|
|
bgp-web.workspace = true
|
|
clap.workspace = true
|
|
eyre.workspace = true
|
|
protobuf.workspace = true
|
|
tokio.workspace = true
|
|
tracing.workspace = true
|
|
tracing-subscriber.workspace = true
|
|
|
|
# jemalloc does not build with the MSVC toolchain; there the system
|
|
# allocator is used.
|
|
[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.
|
|
heap-profiling = ["tikv-jemallocator/profiling"]
|
|
|
|
[lints]
|
|
workspace = true
|