From: qiulaidongfeng <2645477756@qq.com> Date: Thu, 8 Feb 2024 05:39:07 +0000 (+0000) Subject: internal/pprof: remove unused code X-Git-Tag: go1.23rc1~1275 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=151362cf7c94bab5baa33af47249c850fbb941b0;p=gostls13.git internal/pprof: remove unused code Change-Id: I47e98122668960321124e426b345d36f6916b738 GitHub-Last-Rev: b72c9ab33e1c9c49b3b44dc8782344d1ed481123 GitHub-Pull-Request: golang/go#65594 Reviewed-on: https://go-review.googlesource.com/c/go/+/562324 Reviewed-by: Michael Pratt LUCI-TryBot-Result: Go LUCI Auto-Submit: Michael Pratt Reviewed-by: Cherry Mui --- diff --git a/src/internal/profile/filter.go b/src/internal/profile/filter.go index 141dd1f405..1da580aea8 100644 --- a/src/internal/profile/filter.go +++ b/src/internal/profile/filter.go @@ -6,110 +6,6 @@ package profile -import "regexp" - -// FilterSamplesByName filters the samples in a profile and only keeps -// samples where at least one frame matches focus but none match ignore. -// Returns true is the corresponding regexp matched at least one sample. -func (p *Profile) FilterSamplesByName(focus, ignore, hide *regexp.Regexp) (fm, im, hm bool) { - focusOrIgnore := make(map[uint64]bool) - hidden := make(map[uint64]bool) - for _, l := range p.Location { - if ignore != nil && l.matchesName(ignore) { - im = true - focusOrIgnore[l.ID] = false - } else if focus == nil || l.matchesName(focus) { - fm = true - focusOrIgnore[l.ID] = true - } - if hide != nil && l.matchesName(hide) { - hm = true - l.Line = l.unmatchedLines(hide) - if len(l.Line) == 0 { - hidden[l.ID] = true - } - } - } - - s := make([]*Sample, 0, len(p.Sample)) - for _, sample := range p.Sample { - if focusedAndNotIgnored(sample.Location, focusOrIgnore) { - if len(hidden) > 0 { - var locs []*Location - for _, loc := range sample.Location { - if !hidden[loc.ID] { - locs = append(locs, loc) - } - } - if len(locs) == 0 { - // Remove sample with no locations (by not adding it to s). - continue - } - sample.Location = locs - } - s = append(s, sample) - } - } - p.Sample = s - - return -} - -// matchesName reports whether the function name or file in the -// location matches the regular expression. -func (loc *Location) matchesName(re *regexp.Regexp) bool { - for _, ln := range loc.Line { - if fn := ln.Function; fn != nil { - if re.MatchString(fn.Name) { - return true - } - if re.MatchString(fn.Filename) { - return true - } - } - } - return false -} - -// unmatchedLines returns the lines in the location that do not match -// the regular expression. -func (loc *Location) unmatchedLines(re *regexp.Regexp) []Line { - var lines []Line - for _, ln := range loc.Line { - if fn := ln.Function; fn != nil { - if re.MatchString(fn.Name) { - continue - } - if re.MatchString(fn.Filename) { - continue - } - } - lines = append(lines, ln) - } - return lines -} - -// focusedAndNotIgnored looks up a slice of ids against a map of -// focused/ignored locations. The map only contains locations that are -// explicitly focused or ignored. Returns whether there is at least -// one focused location but no ignored locations. -func focusedAndNotIgnored(locs []*Location, m map[uint64]bool) bool { - var f bool - for _, loc := range locs { - if focus, focusOrIgnore := m[loc.ID]; focusOrIgnore { - if focus { - // Found focused location. Must keep searching in case there - // is an ignored one as well. - f = true - } else { - // Found ignored location. Can return false right away. - return false - } - } - } - return f -} - // TagMatch selects tags for filtering type TagMatch func(key, val string, nval int64) bool diff --git a/src/internal/profile/profile.go b/src/internal/profile/profile.go index db323cc0d9..afd1dd72ee 100644 --- a/src/internal/profile/profile.go +++ b/src/internal/profile/profile.go @@ -150,7 +150,6 @@ func Parse(r io.Reader) (*Profile, error) { return p, nil } -var errUnrecognized = fmt.Errorf("unrecognized profile format") var errMalformed = fmt.Errorf("malformed profile format") var ErrNoData = fmt.Errorf("empty input file")