Middle
Ինչպես ինտեգրել ստանդարտ պրոֆայլերը ձեր Go հավելվածում?
sobes.tech AI
Պատասխան AI-ից
net/http/pprof փաթեթը ապահովում է HTTP մենեջերներ պրոֆիլավորման տվյալների համար:
Ներմուծեք այն՝
import (
"net/http"
_ "net/http/pprof" // Կարևոր է օգտագործել '_'՝ կողմնակի ազդեցություններով ինիցիալիզացիայի համար
)
Սկսեք HTTP սերվերը առանձին goroutine-ում՝
go func() {
// Սկսեք սերվերը տեղական հասցեում և ստանդարտ pprof պորտով
if err := http.ListenAndServe("localhost:6060", nil); err != nil {
// Հաշվարկեք սերվերի գործարկման սխալը, օրինակ՝ գրանցելով
// log.Printf("pprof սերվերը ձախողվեց՝ %v", err)
}
}()
Հիմա դուք կարող եք մուտք գործել պրոֆիլավորման տվյալներ՝ հասցեով http://localhost:6060/debug/pprof/:
Նախնական հասանելի վերջնակետեր՝
/debug/pprof/: գլխավոր էջ՝ հասանելի պրոֆիլների ցանկով/debug/pprof/heap: heap պրոֆիլ/debug/pprof/goroutine: ակտիվ goroutine-ների պրոֆիլ/debug/pprof/block: բլոկների պրոֆիլ/debug/pprof/threadcreate: օպերացիոն համակարգի թելերի ստեղծման պրոֆիլ/debug/pprof/cmdline: հավելվածի հրամանի տող/debug/pprof/profile: CPU պրոֆիլ (նույնպես հավաքում է տվյալներ 30 վայրկյան)/debug/pprof/trace: կատարողականի հետևման պրոֆիլ (նույնպես հավաքում է տվյալներ 1 վայրկյան)
CPU, heap և բլոկ պրոֆիլների վերլուծության համար սովորաբար օգտագործվում է go tool pprof գործիքը՝
go tool pprof http://localhost:6060/debug/pprof/profile # CPU պրոֆիլ 30 վայրկյան
ngo tool pprof http://localhost:6060/debug/pprof/heap # heap պրոֆիլ
Կատարողականի հետևման վերլուծության համար օգտագործվում է go tool trace գործիքը՝
go tool trace http://localhost:6060/debug/pprof/trace
Մեծ կարևորություն: Զգուշացեք անվտանգության մասին և մի բացեք pprof պորտը հանրային առանց թույլտվության արտադրության մեջ: