本文整理匯總了Golang中github.com/google/pprof/profile.Profile.Write方法的典型用法代碼示例。如果您正苦於以下問題:Golang Profile.Write方法的具體用法?Golang Profile.Write怎麽用?Golang Profile.Write使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/google/pprof/profile.Profile
的用法示例。
在下文中一共展示了Profile.Write方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: printTopProto
func printTopProto(w io.Writer, rpt *Report) error {
p := rpt.prof
o := rpt.options
g, _, _, _ := rpt.newTrimmedGraph()
rpt.selectOutputUnit(g)
out := profile.Profile{
SampleType: []*profile.ValueType{
{Type: "cum", Unit: o.OutputUnit},
{Type: "flat", Unit: o.OutputUnit},
},
TimeNanos: p.TimeNanos,
DurationNanos: p.DurationNanos,
PeriodType: p.PeriodType,
Period: p.Period,
}
var flatSum int64
for i, n := range g.Nodes {
name, flat, cum := n.Info.PrintableName(), n.Flat, n.Cum
flatSum += flat
f := &profile.Function{
ID: uint64(i + 1),
Name: name,
SystemName: name,
}
l := &profile.Location{
ID: uint64(i + 1),
Line: []profile.Line{
{
Function: f,
},
},
}
fv, _ := measurement.Scale(flat, o.SampleUnit, o.OutputUnit)
cv, _ := measurement.Scale(cum, o.SampleUnit, o.OutputUnit)
s := &profile.Sample{
Location: []*profile.Location{l},
Value: []int64{int64(cv), int64(fv)},
}
out.Function = append(out.Function, f)
out.Location = append(out.Location, l)
out.Sample = append(out.Sample, s)
}
return out.Write(w)
}