5 def ccache_get_info(info
):
6 cmd
= "ccache -s | awk '$1 == \"cache\" && $2 == \"%s\" { print $3 }'" % info
7 num
= int(os
.popen(cmd
).readline())
11 hit
= ccache_get_info("hit")
12 miss
= ccache_get_info("miss")
16 os
.system("make " + args
)
18 def report(args
, hit_bef
, miss_bef
, hit_aft
, miss_aft
):
20 lookups
= (hit_aft
+ miss_aft
) - (hit_bef
+ miss_bef
)
21 hits
= hit_aft
- hit_bef
22 misses
= miss_aft
- miss_bef
23 hits_per
= (100.0 * hits
) / lookups
24 miss_per
= (100.0 * misses
) / lookups
26 print '-' * header_size
27 print 'ccache usage report:\n'
28 print 'cmd: make ' + args
+ '\n'
29 print 'lookups: %5d' % lookups
30 print 'hits : %5d (%.1f%%)' % (hits
, hits_per
)
31 print 'misses : %5d (%.1f%%)' % (misses
, miss_per
)
32 print '-' * header_size
36 if len(sys
.argv
) == 2:
39 (hit_bef
, miss_bef
) = ccache_get_all()
41 (hit_aft
, miss_aft
) = ccache_get_all()
43 report(args
, hit_bef
, miss_bef
, hit_aft
, miss_aft
)
46 if __name__
== "__main__":