The attached test program can be used to measure the performance of posix_spawn vs fork+exec under simulated memory conditions in the parent. The options it takes are: -n bytes memory to allocate -r fragment memory into alternating ro/rw vmas -d dirty allocated memory -f use fork+exec (instead of default posix_spawn) At -n 200000000 -r -d, I've observed a nearly 300x performance difference. As (somewhat) expected, with large -n but neither -r or -d, fork+exec performs well -- all pages are COW zero pages and easily forked. But if the pages are dirty, or if there are lots of vmas (even non-dirty ones), fork gets very slow. Rich