From 2d74ae455b853b61b6ea5d7ea6203a350a8117b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20S=C3=A1nchez=20Mu=C3=B1oz?= Date: Thu, 31 Oct 2024 18:56:42 +0100 Subject: [PATCH] perf(cli): use mimalloc as global allocator --- Cargo.lock | 35 +++++++++++++++++++++++++++++++++++ rsjsonnet/Cargo.toml | 1 + rsjsonnet/src/main.rs | 3 +++ 3 files changed, 39 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index ca3f515..606edf4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -96,6 +96,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "cc" +version = "1.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f" +dependencies = [ + "shlex", +] + [[package]] name = "cfg-if" version = "1.0.0" @@ -301,6 +310,16 @@ version = "0.2.161" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" +[[package]] +name = "libmimalloc-sys" +version = "0.1.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23aa6811d3bd4deb8a84dde645f943476d13b248d818edcf8ce0b2f37f036b44" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "libtest-mimic" version = "0.8.1" @@ -351,6 +370,15 @@ version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +[[package]] +name = "mimalloc" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68914350ae34959d83f732418d51e2427a794055d0b9529f48259ac07af65633" +dependencies = [ + "libmimalloc-sys", +] + [[package]] name = "mio" version = "1.0.2" @@ -426,6 +454,7 @@ version = "0.3.0-pre" dependencies = [ "clap", "libtest-mimic", + "mimalloc", "rsjsonnet-front", "rsjsonnet-lang", "serde", @@ -510,6 +539,12 @@ dependencies = [ "serde", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "signal-hook" version = "0.3.17" diff --git a/rsjsonnet/Cargo.toml b/rsjsonnet/Cargo.toml index 954f200..35e2253 100644 --- a/rsjsonnet/Cargo.toml +++ b/rsjsonnet/Cargo.toml @@ -16,6 +16,7 @@ harness = false [dependencies] clap = { version = "4.5.20", features = ["derive"] } +mimalloc = "0.1.43" rsjsonnet-front = { workspace = true, features = ["crossterm"] } rsjsonnet-lang = { workspace = true } diff --git a/rsjsonnet/src/main.rs b/rsjsonnet/src/main.rs index 523d068..2aeb8f5 100644 --- a/rsjsonnet/src/main.rs +++ b/rsjsonnet/src/main.rs @@ -19,6 +19,9 @@ use rsjsonnet_lang::program::{Program, Thunk, Value}; mod cli; +#[global_allocator] +static GLOBAL_ALLOCATOR: mimalloc::MiMalloc = mimalloc::MiMalloc; + fn main() -> ExitCode { match main_inner() { Ok(()) => ExitCode::SUCCESS,