diff options
author | Aspen Smith <root@gws.fyi> | 2024-02-13T18·23-0500 |
---|---|---|
committer | clbot <clbot@tvl.fyi> | 2024-06-06T10·29+0000 |
commit | d0ab3c8d15b2293d7752227d50c1b9cbabc57a83 (patch) | |
tree | 6e9b7b27376eb34585eb0be599b17bf02e89c3d8 /tvix/glue/benches | |
parent | 08e520b7ccdf39bed2e7ecef6bc0cbb16b01455f (diff) |
feat(tvix): Switch to jemalloc r/8222
Switch tvix to using jemalloc as the default global allocator on supported (eg, non-msvc) platforms. This gives a pretty reasonable performance boost basically for free: int time: [24.361 µs 24.386 µs 24.418 µs] change: [-19.355% -18.859% -18.527%] (p = 0.00 < 0.05) Performance has improved. merge small attrs time: [37.201 µs 37.328 µs 37.442 µs] change: [-24.609% -24.266% -23.982%] (p = 0.00 < 0.05) Performance has improved. merge large attrs with small attrs time: [20.030 ms 20.135 ms 20.251 ms] change: [-4.2811% -3.2549% -2.3807%] (p = 0.00 < 0.05) Performance has improved. hello outpath time: [967.91 ms 974.07 ms 983.33 ms] change: [-5.5008% -4.4552% -3.4099%] (p = 0.00 < 0.05) Performance has improved. Change-Id: I6c6e6e3295ec2fca01ea28dc37bcb201cd811767 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10851 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Autosubmit: aspen <root@gws.fyi> Reviewed-by: flokli <flokli@flokli.de>
Diffstat (limited to 'tvix/glue/benches')
-rw-r--r-- | tvix/glue/benches/eval.rs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/tvix/glue/benches/eval.rs b/tvix/glue/benches/eval.rs index 202278c1aa01..9e0154cad787 100644 --- a/tvix/glue/benches/eval.rs +++ b/tvix/glue/benches/eval.rs @@ -1,6 +1,8 @@ use criterion::{black_box, criterion_group, criterion_main, Criterion}; use lazy_static::lazy_static; use std::{env, rc::Rc, sync::Arc, time::Duration}; +#[cfg(not(target_env = "msvc"))] +use tikv_jemallocator::Jemalloc; use tvix_build::buildservice::DummyBuildService; use tvix_eval::{builtins::impure_builtins, EvalIO}; use tvix_glue::{ @@ -11,6 +13,10 @@ use tvix_glue::{ }; use tvix_store::utils::construct_services; +#[cfg(not(target_env = "msvc"))] +#[global_allocator] +static GLOBAL: Jemalloc = Jemalloc; + lazy_static! { static ref TOKIO_RUNTIME: tokio::runtime::Runtime = tokio::runtime::Runtime::new().unwrap(); } |