From 404f1bf51c78340910306c56d1fb077db89ddfa9 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Tue, 24 Feb 2026 21:36:00 +0200 Subject: flamegraph: batch writeFrame output in single write --- internal/flamegraph/svgwriter.go | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) (limited to 'internal/flamegraph') diff --git a/internal/flamegraph/svgwriter.go b/internal/flamegraph/svgwriter.go index 4457fba..b68f6d8 100644 --- a/internal/flamegraph/svgwriter.go +++ b/internal/flamegraph/svgwriter.go @@ -120,25 +120,22 @@ func renderFrames(bw *bufio.Writer, node *trieNode, rootTotal uint64, cfg SVGCon } func writeFrame(bw *bufio.Writer, name, title, fill string, x, y, w, h float64, depth, fontSize int) error { - _, err := fmt.Fprintf(bw, ``+"\n", - svgEscape(name), x, w, depth, fill) - if err != nil { - return err - } - if _, err = fmt.Fprintf(bw, `%s`+"\n", - svgEscape(title), x, y, w, h, fill); err != nil { - return err - } + textStyle := "" labelStyle := "" if w <= float64(fontSize*2) { labelStyle = ` style="display:none"` } - _, err = fmt.Fprintf(bw, `%s`+"\n", - x+3, y+float64(fontSize), labelStyle, svgEscape(name)) - if err != nil { - return err - } - _, err = fmt.Fprintln(bw, "") + if labelStyle != "" { + textStyle = labelStyle + } + _, err := fmt.Fprintf(bw, ` +%s +%s + +`, + svgEscape(name), x, w, depth, fill, + svgEscape(title), x, y, w, h, fill, + x+3, y+float64(fontSize), textStyle, svgEscape(name)) return err } -- cgit v1.2.3