Follow-up Comment #9, bug #44555 (project make): While it doesn't account for the full 2.5+ minutes difference, "strace -c"'s summary of syscalls shows that vfork() in a good version of make is less than .02s, while fork() (show as clone()) in a bad version is about 75s (547us/call), a difference which becomes worse as the memory size of make increases (this is why having a lot of dependency information, as in my generated makefile, is relevant). Furthermore, the total number of clone() syscalls is higher, I believe because more of them are interrupted by SIGCHLD.
Slow trace: % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 99.97 78.092824 547 142754 47753 clone 0.02 0.018415 0 105026 wait4 0.01 0.004928 0 200005 rt_sigprocmask Fast trace: 74.59 0.013843 0 100334 5333 vfork 7.51 0.001394 0 200005 rt_sigprocmask 7.19 0.001335 0 110296 wait4 _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?44555> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make