Hi, Sorry if this has come up before - I did take a look and couldn't find anything.
Could bash use posix_spawn/vfork instead of the rather heavyweight fork? I'm aware of the work in `devel` to add nofork comsubs which is very intriguing, but I do wonder about another suggestion: could bash use posix_spawn (or maybe vfork directly) in some cases? Recently, we've been optimising a lot of our global-scope (commonly used bash "libraries") used for packages in Gentoo and unsurprisingly, a lot of the cost has been down to forks, so this came up. (It also came up a few years ago in https://trofi.github.io/posts/215-perf-and-dwarf-and-fork.html). Some prior art: * fish used to do it, but stopped because it didn't make as much sense for them (fish is for interactive use AFAIK so I guess the environment size is never big enough for this to pay off): https://github.com/fish-shell/fish-shell/issues/3149. * ksh does it (https://github.com/ksh93/ksh/issues/79). * The `posixspawn` utility (https://github.com/AlexanderOMara/posixspawn) aims to make this available as a tool to call rather than something builtin. * https://blog.famzah.net/tag/benchmark-fork/ has an interesting set of benchmarks. * https://metacpan.org/pod/Proc::FastSpawn implements this in Perl with some interesting discussion on the performance benefits. best, sam
signature.asc
Description: PGP signature