From 910133a5b63c2233f9967f3517d51a4cc3d438f3 Mon Sep 17 00:00:00 2001 From: Federico Pellegrin Date: Wed, 24 Nov 2021 13:19:50 +0100 Subject: [PATCH] wafcache: support stats also for multiple build commands --- waflib/Tools/wafcache.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/waflib/Tools/wafcache.py b/waflib/Tools/wafcache.py index cc23fcd6..2cef46c0 100644 --- a/waflib/Tools/wafcache.py +++ b/waflib/Tools/wafcache.py @@ -258,6 +258,19 @@ def build(bld): """ Called during the build process to enable file caching """ + if WAFCACHE_STATS: + # Init counter for statistics and hook to print results at the end + bld.cache_reqs = bld.cache_hits = bld.cache_puts = 0 + + def printstats(bld): + hit_ratio = 0 + if bld.cache_reqs > 0: + hit_ratio = (bld.cache_hits / bld.cache_reqs) * 100 + Logs.pprint('CYAN', ' wafcache stats: requests: %s, hits, %s, ratio: %.2f%%, writes %s' % + (bld.cache_reqs, bld.cache_hits, hit_ratio, bld.cache_puts) ) + + bld.add_post_fun(printstats) + if process_pool: # already called once return @@ -273,19 +286,6 @@ def build(bld): for x in reversed(list(Task.classes.values())): make_cached(x) - if WAFCACHE_STATS: - # Init counter for statistics and hook to print results at the end - bld.cache_reqs = bld.cache_hits = bld.cache_puts = 0 - - def printstats(bld): - hit_ratio = 0 - if bld.cache_reqs > 0: - hit_ratio = (bld.cache_hits / bld.cache_reqs) * 100 - Logs.pprint('CYAN', ' wafcache stats: requests: %s, hits, %s, ratio: %.2f%%, writes %s' % - (bld.cache_reqs, bld.cache_hits, hit_ratio, bld.cache_puts) ) - - bld.add_post_fun(printstats) - def cache_command(sig, files_from, files_to): """ Create a command for cache worker processes, returns a pickled