proc: optimize FindGoroutine by checking the cache first (#2118)
This commit is contained in:
parent
46731820df
commit
7a8316b52f
@ -388,6 +388,10 @@ func FindGoroutine(dbp *Target, gid int) (*G, error) {
|
||||
return nil, fmt.Errorf("unknown goroutine %d", gid)
|
||||
}
|
||||
|
||||
if g := dbp.gcache.partialGCache[gid]; g != nil {
|
||||
return g, nil
|
||||
}
|
||||
|
||||
// Calling GoroutinesInfo could be slow if there are many goroutines
|
||||
// running, check if a running goroutine has been requested first.
|
||||
for _, thread := range dbp.ThreadList() {
|
||||
@ -397,10 +401,6 @@ func FindGoroutine(dbp *Target, gid int) (*G, error) {
|
||||
}
|
||||
}
|
||||
|
||||
if g := dbp.gcache.partialGCache[gid]; g != nil {
|
||||
return g, nil
|
||||
}
|
||||
|
||||
const goroutinesInfoLimit = 10
|
||||
nextg := 0
|
||||
for nextg >= 0 {
|
||||
|
Loading…
Reference in New Issue
Block a user