func IsSerialized(r *bufio.Reader) (bool, error)
IsSerialized returns true if r is a serialized Profile.
IsSerialized only peeks at r, so seeking back after calling is not necessary.
func WeightInPercentage(value int64, total int64) float64
WeightInPercentage converts profile weights to a percentage.
NamedCallEdge identifies a call edge by linker symbol names and call site offset.
type NamedCallEdge struct {
CallerName string
CalleeName string
CallSiteOffset int // Line offset from function start line.
}
NamedEdgeMap contains all unique call edges in the profile and their edge weight.
type NamedEdgeMap struct {
Weight map[NamedCallEdge]int64
// ByWeight lists all keys in Weight, sorted by edge weight from
// highest to lowest.
ByWeight []NamedCallEdge
}
Profile contains the processed data from the PGO profile.
type Profile struct {
// TotalWeight is the aggregated edge weights across the profile. This
// helps us determine the percentage threshold for hot/cold
// partitioning.
TotalWeight int64
// NamedEdgeMap contains all unique call edges in the profile and their
// edge weight.
NamedEdgeMap NamedEdgeMap
}
func FromPProf(r io.Reader) (*Profile, error)
FromPProf parses Profile from a pprof profile.
func FromSerialized(r io.Reader) (*Profile, error)
FromSerialized parses a profile from serialization output of Profile.WriteTo.
func (d *Profile) WriteTo(w io.Writer) (int64, error)
WriteTo writes a serialized representation of Profile to w.
FromSerialized can parse the format back to Profile.
WriteTo implements io.WriterTo.Write.