diff options
author | Sergei Trofimovich <slyich@gmail.com> | 2023-08-19 07:53:39 +0100 |
---|---|---|
committer | Sergei Trofimovich <slyich@gmail.com> | 2023-08-19 08:39:13 +0100 |
commit | 8708ae0e37084d44dfc2d89e5d14731382f82236 (patch) | |
tree | b6bcc4e0b05e72a85266a90b0c24f38acfd18269 /pkgs/shells/bash | |
parent | 50a4d6349c0e6a3610608f23bd66b2d0aaa47d2f (diff) |
bash: disable `bash-malloc` everywhere, not just on `musl`
TIme to time I bump into pathological behaviour of `bash` memory allocator. Today's example: $ time { ls /nix/store/ > /dev/null; } real 0m0,965s user 0m0,876s sys 0m0,087s $ time { echo /nix/store/* > /dev/null; } real 2m18,287s user 2m17,946s sys 0m0,125s $ time { echo /nix/store/* > /dev/null; } real 0m1,764s user 0m1,712s sys 0m0,048s Note how initial `echo` takes alsmot 2 minutes to finish. Let's rely on system's allocator instead. After the change initial run is fast again: $ time { echo /nix/store/* > /dev/null; } real 0m1,328s user 0m1,264s sys 0m0,063s
Diffstat (limited to 'pkgs/shells/bash')
-rw-r--r-- | pkgs/shells/bash/5.nix | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/pkgs/shells/bash/5.nix b/pkgs/shells/bash/5.nix index 00b4a707ed08c..7e815751ef727 100644 --- a/pkgs/shells/bash/5.nix +++ b/pkgs/shells/bash/5.nix @@ -64,6 +64,12 @@ stdenv.mkDerivation rec { ]; configureFlags = [ + # At least on Linux bash memory allocator has pathological performance + # in scenarios involving use of larger memory: + # https://lists.gnu.org/archive/html/bug-bash/2023-08/msg00052.html + # Various distributions default to system allocator. Let's nixpkgs + # do the same. + "--without-bash-malloc" (if interactive then "--with-installed-readline" else "--disable-readline") ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "bash_cv_job_control_missing=nomissing" @@ -77,7 +83,6 @@ stdenv.mkDerivation rec { "bash_cv_dev_fd=standard" "bash_cv_termcap_lib=libncurses" ] ++ lib.optionals (stdenv.hostPlatform.libc == "musl") [ - "--without-bash-malloc" "--disable-nls" ]; |