aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/cover
diff options
context:
space:
mode:
authorTaras Madan <tarasmadan@google.com>2024-07-17 10:23:12 +0200
committerTaras Madan <tarasmadan@google.com>2024-07-17 09:48:42 +0000
commit3bdf1c5586d449bb17aa0373b45b5b3bbeedda46 (patch)
tree5fe828e32dc2691bd7200d763c2f3b106add31bb /pkg/cover
parente94834c03d8bd189227351a69bdd395f45ddbd5a (diff)
syz-cover: cache subsystems to speed-up report generation
Diffstat (limited to 'pkg/cover')
-rw-r--r--pkg/cover/heatmap.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/pkg/cover/heatmap.go b/pkg/cover/heatmap.go
index 2582de7d7..2b89c081b 100644
--- a/pkg/cover/heatmap.go
+++ b/pkg/cover/heatmap.go
@@ -182,9 +182,15 @@ func DoSubsystemsHeatMap(w io.Writer, projectID, ns string, dateFrom, dateTo civ
panic(err)
}
ssMatcher := subsystem.MakePathMatcher(subsystem.GetList("linux"))
+ ssCache := make(map[string][]*subsystem.Subsystem)
var ssCovAndDates []*fileCoverageAndDate
for _, cad := range covAndDates {
- for _, ss := range ssMatcher.Match(cad.Filepath) {
+ sss := ssCache[cad.Filepath]
+ if sss == nil {
+ sss = ssMatcher.Match(cad.Filepath)
+ ssCache[cad.Filepath] = sss
+ }
+ for _, ss := range sss {
newRecord := fileCoverageAndDate{
Filepath: ss.Name + "/" + cad.Filepath,
Instrumented: cad.Instrumented,