Follow-up Comment #14, bug #65533 (group make):

Interesting.  If you wanted to check if this is the cause of the slowdown, you
can edit the *src/dir.c* file and change these lines:

      /* No commands have run since we parsed this directory so it's good.
*/
      if (ctr == command_count)
        return dir;

to just return the dir, like this:

      /* No commands have run since we parsed this directory so it's good.
*/
      return dir;

If that fixes the performance problem then we've discovered the culprit.

The cache should only be invalidated when both (a) make is trying to access a
directory that it already accessed before (so it was cached), AND (b) make has
invoked some command (either a recipe or a $(shell ...) function) since the
last time it wanted to access that directory.

If this does end up being the problem then we'll need to dig deeper.  Having
almost 4 million instances of directory cache invalidation sure seems odd;
presumably you're not building 4 million targets / running 4 million recipes,
so maybe there is a $(shell ...) function which is getting run constantly?

Maybe you can examine the debug output and look at what make is doing, in
between these cache invalidations?


    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?65533>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/

Attachment: signature.asc
Description: PGP signature

Reply via email to