package pgo
import "cmd/internal/pgo"
Package pgo contains the compiler-agnostic portions of PGO profile handling. Notably, parsing pprof profiles and serializing/deserializing from a custom intermediate representation.
Package pgo contains the compiler-agnostic portions of PGO profile handling. Notably, parsing pprof profiles and serializing/deserializing from a custom intermediate representation.
Index ¶
- func IsSerialized(r *bufio.Reader) (bool, error)
- func WeightInPercentage(value int64, total int64) float64
- type NamedCallEdge
- type NamedEdgeMap
- type Profile
Functions ¶
func IsSerialized ¶
IsSerialized returns true if r is a serialized Profile.
IsSerialized only peeks at r, so seeking back after calling is not necessary.
func WeightInPercentage ¶
WeightInPercentage converts profile weights to a percentage.
Types ¶
type NamedCallEdge ¶
type NamedCallEdge struct {
CallerName string
CalleeName string
CallSiteOffset int // Line offset from function start line.
}
NamedCallEdge identifies a call edge by linker symbol names and call site offset.
type NamedEdgeMap ¶
type NamedEdgeMap struct {
Weight map[NamedCallEdge]int64
// ByWeight lists all keys in Weight, sorted by edge weight from
// highest to lowest.
ByWeight []NamedCallEdge
}
NamedEdgeMap contains all unique call edges in the profile and their edge weight.
type 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
}
Profile contains the processed data from the PGO profile.
func FromPProf ¶
FromPProf parses Profile from a pprof profile.
func FromSerialized ¶
FromSerialized parses a profile from serialization output of Profile.WriteTo.
func (*Profile) WriteTo ¶
WriteTo writes a serialized representation of Profile to w.
FromSerialized can parse the format back to Profile.
WriteTo implements io.WriterTo.Write.
Source Files ¶
deserialize.go pgo.go pprof.go serialize.go
- Version
- v1.24.12
- Published
- Jan 8, 2026
- Platform
- linux/amd64
- Imports
- 8 packages
- Last checked
- 3 seconds ago –
Tools for package owners.