diff options
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/flamegraph/nativesvg.go | 11 | ||||
| -rw-r--r-- | internal/tui/common/keys.go | 12 |
2 files changed, 14 insertions, 9 deletions
diff --git a/internal/flamegraph/nativesvg.go b/internal/flamegraph/nativesvg.go index 26fc1e8..831ffed 100644 --- a/internal/flamegraph/nativesvg.go +++ b/internal/flamegraph/nativesvg.go @@ -3,10 +3,9 @@ package flamegraph import ( "fmt" "io" + "iter" "os" "strings" - - "iter" ) type NativeSVG struct { @@ -54,19 +53,21 @@ func (n NativeSVG) WriteSVGFromFile(iorDataFile string) (outFile string, err err func (n NativeSVG) WriteSVGFromIter(records iter.Seq[IterRecord], w io.Writer) error { tr := newTrie() + var framesBuf []string for record := range records { - frames, err := n.recordFrames(record) + frames, err := n.recordFrames(record, framesBuf) if err != nil { return err } + framesBuf = frames tr.add(frames, record.Cnt.ValueByName(n.countField)) } tr.computeTotals() return WriteSVG(w, tr, n.config) } -func (n NativeSVG) recordFrames(record IterRecord) ([]string, error) { - var frames []string +func (n NativeSVG) recordFrames(record IterRecord, framesBuf []string) ([]string, error) { + frames := framesBuf[:0] for _, fieldName := range n.fields { value, err := record.StringByName(fieldName) if err != nil { diff --git a/internal/tui/common/keys.go b/internal/tui/common/keys.go index 1111def..805a74a 100644 --- a/internal/tui/common/keys.go +++ b/internal/tui/common/keys.go @@ -65,10 +65,10 @@ func (k KeyMap) DashboardFullHelp() [][]key.Binding { {k.One, k.Two, k.Three, k.Four, k.Five, k.Six}, controls, { - key.NewBinding(key.WithKeys("left/right"), key.WithHelp("left/right", "tab")), - key.NewBinding(key.WithKeys("h/l"), key.WithHelp("h/l", "tab")), - key.NewBinding(key.WithKeys("j/k"), key.WithHelp("j/k", "scroll")), - key.NewBinding(key.WithKeys("up/down"), key.WithHelp("up/down", "scroll")), + helpTextBinding("left/right", "tab"), + helpTextBinding("h/l", "tab"), + helpTextBinding("j/k", "scroll"), + helpTextBinding("up/down", "scroll"), }, } } @@ -77,3 +77,7 @@ func (k KeyMap) DashboardFullHelp() [][]key.Binding { func (k KeyMap) PickerShortHelp() []key.Binding { return []key.Binding{k.Enter, k.Refresh, k.Esc} } + +func helpTextBinding(keyText, desc string) key.Binding { + return key.NewBinding(key.WithHelp(keyText, desc)) +} |
