diff options
| author | Paul Buetow <paul@buetow.org> | 2026-02-24 12:21:42 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-02-24 12:21:42 +0200 |
| commit | d93d286b6b214f12e65214360a41f8668123f174 (patch) | |
| tree | 1113fbb7c7dbd08373d7db14bc791bb85eaafd80 /internal/tui | |
| parent | bd3c53086a3fe3ac177f4c656d1e521a2f0595b1 (diff) | |
statsengine: add top-n snapshot helpers for overview
Diffstat (limited to 'internal/tui')
| -rw-r--r-- | internal/tui/dashboard/overview.go | 36 |
1 files changed, 9 insertions, 27 deletions
diff --git a/internal/tui/dashboard/overview.go b/internal/tui/dashboard/overview.go index 6d705da..1bdb64f 100644 --- a/internal/tui/dashboard/overview.go +++ b/internal/tui/dashboard/overview.go @@ -108,54 +108,36 @@ func trendWithArrow(trend statsengine.Trend) string { } func summarizeTopSyscalls(snap *statsengine.Snapshot) string { - syscalls := snap.Syscalls() + syscalls := snap.TopNSyscalls(3) if len(syscalls) == 0 { return "none" } - - limit := 3 - if len(syscalls) < limit { - limit = len(syscalls) - } - - parts := make([]string, 0, limit) - for _, syscall := range syscalls[:limit] { + parts := make([]string, 0, len(syscalls)) + for _, syscall := range syscalls { parts = append(parts, fmt.Sprintf("%s(%d)", syscall.Name, syscall.Count)) } return strings.Join(parts, ", ") } func summarizeTopFiles(snap *statsengine.Snapshot) string { - files := snap.Files() + files := snap.TopNFiles(3) if len(files) == 0 { return "none" } - - limit := 3 - if len(files) < limit { - limit = len(files) - } - - parts := make([]string, 0, limit) - for _, f := range files[:limit] { + parts := make([]string, 0, len(files)) + for _, f := range files { parts = append(parts, fmt.Sprintf("%s(%d)", trimPathTail(f.Path, 24), f.Accesses)) } return strings.Join(parts, ", ") } func summarizeTopProcesses(snap *statsengine.Snapshot) string { - processes := snap.Processes() + processes := snap.TopNProcesses(3) if len(processes) == 0 { return "none" } - - limit := 3 - if len(processes) < limit { - limit = len(processes) - } - - parts := make([]string, 0, limit) - for _, p := range processes[:limit] { + parts := make([]string, 0, len(processes)) + for _, p := range processes { parts = append(parts, fmt.Sprintf("%s/%d(%d)", p.Comm, p.PID, p.Syscalls)) } return strings.Join(parts, ", ") |
