From 80c459c36c88c9d90e313e032f545f2d67bfb294 Mon Sep 17 00:00:00 2001 From: Greg Heartsfield Date: Thu, 6 Apr 2023 18:33:30 -0500 Subject: [PATCH] improvement: switch to jemalloc allocator --- Cargo.lock | 21 +++++++++++++++++++++ Cargo.toml | 2 ++ src/main.rs | 7 +++++++ 3 files changed, 30 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 0c7c1ec..5ffd022 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1689,6 +1689,7 @@ dependencies = [ "serde_json", "sqlx", "thiserror", + "tikv-jemallocator", "tokio", "tokio-tungstenite", "tonic", @@ -2958,6 +2959,26 @@ dependencies = [ "once_cell", ] +[[package]] +name = "tikv-jemalloc-sys" +version = "0.5.3+5.3.0-patched" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a678df20055b43e57ef8cddde41cdfda9a3c1a060b67f4c5836dfb1d78543ba8" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "tikv-jemallocator" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20612db8a13a6c06d57ec83953694185a367e16945f66565e8028d2c0bd76979" +dependencies = [ + "libc", + "tikv-jemalloc-sys", +] + [[package]] name = "time" version = "0.1.45" diff --git a/Cargo.toml b/Cargo.toml index aeddb05..f9b9b11 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -54,6 +54,8 @@ bech32 = "0.9.1" url = "2.3.1" qrcode = { version = "0.12.0", default-features = false, features = ["svg"] } nostr = { version = "0.18.0", default-features = false, features = ["base", "nip04", "nip19"] } +[target.'cfg(not(target_env = "msvc"))'.dependencies] +tikv-jemallocator = "0.5" [dev-dependencies] anyhow = "1" diff --git a/src/main.rs b/src/main.rs index 712c902..97aa032 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,6 +9,13 @@ use std::sync::mpsc::{Receiver as MpscReceiver, Sender as MpscSender}; use std::thread; use tracing::info; +#[cfg(not(target_env = "msvc"))] +use tikv_jemallocator::Jemalloc; + +#[cfg(not(target_env = "msvc"))] +#[global_allocator] +static GLOBAL: Jemalloc = Jemalloc; + /// Start running a Nostr relay server. fn main() { let args = CLIArgs::parse();