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
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-make