feat(tvix): Switch to jemalloc

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>
This commit is contained in:
Aspen Smith 2024-02-13 13:23:39 -05:00 committed by clbot
parent 08e520b7cc
commit d0ab3c8d15
8 changed files with 132 additions and 0 deletions

View file

@ -11190,6 +11190,72 @@ rec {
];
features = { };
};
"tikv-jemalloc-sys" = rec {
crateName = "tikv-jemalloc-sys";
version = "0.5.4+5.3.0-patched";
edition = "2018";
links = "jemalloc";
sha256 = "1lc5vm1p9dqdvd3mn3264zddnd7z6i95ch3y69prnjgxp0y480ll";
authors = [
"Alex Crichton <alex@alexcrichton.com>"
"Gonzalo Brito Gadeschi <gonzalobg88@gmail.com>"
"The TiKV Project Developers"
];
dependencies = [
{
name = "libc";
packageId = "libc";
usesDefaultFeatures = false;
}
];
buildDependencies = [
{
name = "cc";
packageId = "cc";
}
];
features = {
"background_threads" = [ "background_threads_runtime_support" ];
"default" = [ "background_threads_runtime_support" ];
};
resolvedDefaultFeatures = [ "background_threads_runtime_support" ];
};
"tikv-jemallocator" = rec {
crateName = "tikv-jemallocator";
version = "0.5.4";
edition = "2018";
sha256 = "1jpanfm9az8hcbg6dyxdabykx03lj0j4g9cbwfa6rig5dg1f0pwn";
authors = [
"Alex Crichton <alex@alexcrichton.com>"
"Gonzalo Brito Gadeschi <gonzalobg88@gmail.com>"
"Simon Sapin <simon.sapin@exyr.org>"
"Steven Fackler <sfackler@gmail.com>"
"The TiKV Project Developers"
];
dependencies = [
{
name = "libc";
packageId = "libc";
usesDefaultFeatures = false;
}
{
name = "tikv-jemalloc-sys";
packageId = "tikv-jemalloc-sys";
usesDefaultFeatures = false;
}
];
features = {
"background_threads" = [ "tikv-jemalloc-sys/background_threads" ];
"background_threads_runtime_support" = [ "tikv-jemalloc-sys/background_threads_runtime_support" ];
"debug" = [ "tikv-jemalloc-sys/debug" ];
"default" = [ "background_threads_runtime_support" ];
"disable_initial_exec_tls" = [ "tikv-jemalloc-sys/disable_initial_exec_tls" ];
"profiling" = [ "tikv-jemalloc-sys/profiling" ];
"stats" = [ "tikv-jemalloc-sys/stats" ];
"unprefixed_malloc_on_supported_platforms" = [ "tikv-jemalloc-sys/unprefixed_malloc_on_supported_platforms" ];
};
resolvedDefaultFeatures = [ "background_threads_runtime_support" "default" ];
};
"time" = rec {
crateName = "time";
version = "0.3.34";
@ -13220,6 +13286,11 @@ rec {
name = "thiserror";
packageId = "thiserror";
}
{
name = "tikv-jemallocator";
packageId = "tikv-jemallocator";
target = { target, features }: (!("msvc" == target."env" or null));
}
{
name = "tokio";
packageId = "tokio";
@ -13414,6 +13485,11 @@ rec {
name = "tempfile";
packageId = "tempfile";
}
{
name = "tikv-jemallocator";
packageId = "tikv-jemallocator";
target = { target, features }: (!("msvc" == target."env" or null));
}
];
features = {
"arbitrary" = [ "proptest" "test-strategy" "imbl/proptest" ];
@ -13534,6 +13610,11 @@ rec {
name = "thiserror";
packageId = "thiserror";
}
{
name = "tikv-jemallocator";
packageId = "tikv-jemallocator";
target = { target, features }: (!("msvc" == target."env" or null));
}
{
name = "tokio";
packageId = "tokio";