With the 20,000 file testcase described below, the performance of make has regressed a little bit since 3.81 -- I *think*.[1]
| | 3.81[1] | 3.82 | 4.0 | 4.1 | master (ga80a8b8) | | make -nrR | 0.67s | 1.1s | 0.76s | 0.76s | 0.76s | | make -n | 3.2s | 130s | 15s | 15s | 15s | As you can see it only matters when you don't specify "-rR". Given that, I don't know if this is actually important. Interestingly, 10 seconds of that time is *after* make has printed "Nothing to be done", but before it exits. So it seems to me that 3.82 introduced two performance regressions, one of which was fixed in 4.0 but the other one (during teardown) remains. Unless the 3.81 version I'm using was built with different gcc optimisation settings. The testcase is from the "tup" build system's benchmark. It is described in detail here[3] but briefly: 10,000 header files, 10,000 C files that each include 7 header files, 10,000 ".d" files; all spread over 1000 directories, with a single non-recursive Makefile. Instructions: git clone git://github.com/gittup/tup.git mkdir tup/test/make_v_tup/mytest cd tup/test/make_v_tup/mytest ../gen-test-case.pl -n 10000 -d 7 cd tmake make # takes about 3 minutes time make Cheers, Dave. [1] I couldn't actually build 3.81 from git myself, presumably because of incompatible autotools versions.[2] It's possible that I built the newer versions of make with different optimisations than my distro did for make 3.81 (Ubuntu 14.04). I used the following (from `dpkg-buildflags --get CFLAGS` which in theory are the distro's defaults): -g -O2 -fstack-protector --param=ssp-buffer-size=4 [2] $ git checkout 3.81 $ git clean -xfd $ autoreconf -i [...] configure.in:48: error: automatic de-ANSI-fication support has been removed /usr/share/aclocal-1.14/obsolete.m4:26: AM_C_PROTOTYPES is expanded from... configure.in:48: the top level autom4te: /usr/bin/m4 failed with exit status: 1 aclocal: error: echo failed with exit status: 1 autoreconf: aclocal failed with exit status: 1 [3] http://gittup.org/tup/make_vs_tup.html _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make