From 963b66e9e7047a188cc31319212d21a78cff49b0 Mon Sep 17 00:00:00 2001 From: Eltrac Date: Fri, 21 Nov 2025 09:33:55 +0800 Subject: perf: concurrently get brew info and reverse dependencies --- main.go | 14 ++++++++++++-- statistics.go | 4 ++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/main.go b/main.go index d7ada82..fb72972 100644 --- a/main.go +++ b/main.go @@ -25,8 +25,18 @@ func main() { // prompt showLoadingPrompt(fmt.Sprintf("What the heck is \"%s\"", pkgName)) // search, tidy up, and print - formula, cask := GetBrewInfo(pkgName) - stat := NewStatistics(formula, cask, pkgName) + fmlChan := make(chan *FormulaInfo) + caskChan := make(chan *CaskInfo) + rvsChan := make(chan []string) + go func() { + formula, cask := GetBrewInfo(pkgName) + fmlChan <- formula + caskChan <- cask + }() + go func() { + rvsChan <- GetBrewUses(pkgName) + }() + stat := NewStatistics(<-fmlChan, <-caskChan, pkgName,<-rvsChan) hideLoadingPrompt() stat.Print() return nil diff --git a/statistics.go b/statistics.go index 46e89c1..17a01d9 100644 --- a/statistics.go +++ b/statistics.go @@ -26,7 +26,7 @@ type statistics struct { ReverseDependencies []string } -func NewStatistics(formula *FormulaInfo, cask *CaskInfo, pkgName string) *statistics { +func NewStatistics(formula *FormulaInfo, cask *CaskInfo, pkgName string, rvs []string) *statistics { var statObject statistics // === formula/cask specific === // @@ -47,7 +47,7 @@ func NewStatistics(formula *FormulaInfo, cask *CaskInfo, pkgName string) *statis } // get reverse dependencies - statObject.ReverseDependencies = GetBrewUses(pkgName) + statObject.ReverseDependencies = rvs } else if cask != nil { statObject.Name = cask.Token statObject.Type = "cask" -- cgit v1.2.3