]> git.ipfire.org Git - thirdparty/automake.git/commit
[ng] check: memoize some internal vars (avoid useless recalculation)
authorStefano Lattarini <stefano.lattarini@gmail.com>
Tue, 15 May 2012 08:33:44 +0000 (10:33 +0200)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Wed, 16 May 2012 09:50:37 +0000 (11:50 +0200)
commit0010655c826446ed1be07874138830a37fb8a6bf
tree307d0f3011a9831c6b0d51e65579fee4da18b1ad
parent8df5284d9b3abf09df2251ffe344fc535b017379
[ng] check: memoize some internal vars (avoid useless recalculation)

Thanks to our recently-introduced support for memoization of make
variables, we can avoid some useless re-calculation of few internal
variables used by the parallel testsuite harness support, thus
improving performances in some common use cases.

More precisely, we have measured the times required to complete null
"make all", "make recheck" and "make check AM_LAZY_CHECK=yes"
invocations in a package with 5000 tests in the top-level directory
and other 5000 tests in a subdirectory.  Here are the results,
averaged on a several runs:

+ Before this patch:
  - "make all"                           2.9 seconds
  - "make recheck"                       4.9 seconds
  - "make check AM_LAZY_CHECK=yes"      18.1 seconds

+ After this patch:
  - "make all"                           2.7 seconds
  - "make recheck"                       3.9 seconds
  - "make check AM_LAZY_CHECK=yes"      15.2 seconds

+ In mainline automake (commit v1.12-75-gd89da9c):
  - "make all"                           0.9 seconds
  - "make recheck"                       3.5 seconds
  - "make check RECHECK_LOGS="          14.1 seconds

So we still have a problem with "make all".  That's due to performance
issues with the internal make function 'am__strip_suffixes', which will
be dealt with in a later patch.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
lib/am/check.am