feat(tvix): Jemalloc -> MiMalloc

Use the faster and newer MiMalloc memory allocator for all endpoints in
the workspace.

Change-Id: Ic60237284ed168e46ec6e8f28e2710bae4385c6f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12149
Tested-by: BuildkiteCI
Reviewed-by: aspen <root@gws.fyi>
This commit is contained in:
Ilan Joselevich 2024-08-08 00:21:26 +03:00
parent 000fb856be
commit f648f17ec3
18 changed files with 153 additions and 126 deletions

View file

@ -20,6 +20,7 @@ ed25519 = "2.2.3"
ed25519-dalek = "2.1.0"
enum-primitive-derive = "0.3.0"
glob = "0.3.0"
mimalloc = "0.1.43"
nom = "7.1.3"
num-traits = "0.2.18"
serde = { version = "1.0", features = ["derive"] }
@ -41,6 +42,7 @@ criterion = { version = "0.5", features = ["html_reports"] }
futures = { version = "0.3.30", default-features = false, features = ["executor"] }
hex-literal = "0.4.1"
lazy_static = "1.4.0"
mimalloc = "0.1.43"
pretty_assertions = "1.4.0"
rstest = "0.19.0"
serde_json = "1.0"

View file

@ -1,8 +1,12 @@
use std::path::Path;
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use mimalloc::MiMalloc;
use nix_compat::derivation::Derivation;
#[global_allocator]
static GLOBAL: MiMalloc = MiMalloc;
const RESOURCES_PATHS: &str = "src/derivation/tests/derivation_tests/ok";
fn bench_aterm_parser(c: &mut Criterion) {

View file

@ -1,8 +1,12 @@
use criterion::{black_box, criterion_group, criterion_main, Criterion, Throughput};
use lazy_static::lazy_static;
use mimalloc::MiMalloc;
use nix_compat::narinfo::NarInfo;
use std::{io, str};
#[global_allocator]
static GLOBAL: MiMalloc = MiMalloc;
const SAMPLE: &str = r#"StorePath: /nix/store/1pajsq519irjy86vli20bgq1wr1q3pny-banking-0.3.0
URL: nar/0rdn027rxqbl42bv9jxhsipgq2hwqdapvwmdzligmzdmz2p9vybs.nar.xz
Compression: xz

View file

@ -3,6 +3,11 @@ use std::{collections::BTreeMap, io::Read};
use nix_compat::derivation::Derivation;
use serde_json::json;
use mimalloc::MiMalloc;
#[global_allocator]
static GLOBAL: MiMalloc = MiMalloc;
/// construct a serde_json::Value from a Derivation.
/// Some environment values can be non-valid UTF-8 strings.
/// `serde_json` prints them out really unreadable.