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.