From f73aee72f87ba6cd3e46184ae75824fd38250f04 Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Mon, 5 Apr 2021 18:20:17 +0200 Subject: fusefrontend: print dirCache stats after unmount --- internal/fusefrontend/dircache.go | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) (limited to 'internal/fusefrontend/dircache.go') diff --git a/internal/fusefrontend/dircache.go b/internal/fusefrontend/dircache.go index ea0d1c8..6732de1 100644 --- a/internal/fusefrontend/dircache.go +++ b/internal/fusefrontend/dircache.go @@ -151,17 +151,24 @@ func (d *dirCache) expireThread() { for { time.Sleep(60 * time.Second) d.Clear() - if enableStats { - d.Lock() - lookups := d.lookups - hits := d.hits - d.lookups = 0 - d.hits = 0 - d.Unlock() - if lookups > 0 { - fmt.Printf("dirCache: hits=%3d lookups=%3d, rate=%3d%%\n", hits, lookups, (hits*100)/lookups) - } - } + d.stats() + } +} + +// stats prints hit rate statistics and resets the counters. No-op if +// enableStats == false. +func (d *dirCache) stats() { + if !enableStats { + return + } + d.Lock() + lookups := d.lookups + hits := d.hits + d.lookups = 0 + d.hits = 0 + d.Unlock() + if lookups > 0 { + fmt.Printf("dirCache: hits=%3d lookups=%3d, rate=%3d%%\n", hits, lookups, (hits*100)/lookups) } } -- cgit v1.2.3