From 53b5fedbc35eb59e450da0891ace3c206203fbad Mon Sep 17 00:00:00 2001 From: seiuneko <25706824+seiuneko@users.noreply.github.com> Date: Mon, 18 Nov 2024 19:47:35 +0800 Subject: [PATCH] optimize: reduce memory usage by reading kallsyms only in the trace command (#700) --- cmd/trace.go | 3 +++ trace/kallsyms.go | 6 +----- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/cmd/trace.go b/cmd/trace.go index 0c67775..2bd47ff 100644 --- a/cmd/trace.go +++ b/cmd/trace.go @@ -31,6 +31,9 @@ func init() { traceCmd := &cobra.Command{ Use: "trace", Short: "To trace traffic", + PreRun: func(cmd *cobra.Command, args []string) { + trace.ReadKallsyms() + }, Run: func(cmd *cobra.Command, args []string) { internal.AutoSu() diff --git a/trace/kallsyms.go b/trace/kallsyms.go index aa575d9..c920cb8 100644 --- a/trace/kallsyms.go +++ b/trace/kallsyms.go @@ -26,11 +26,7 @@ var kallsyms []Symbol var kallsymsByName map[string]Symbol = make(map[string]Symbol) var kallsymsByAddr map[uint64]Symbol = make(map[uint64]Symbol) -func init() { - readKallsyms() -} - -func readKallsyms() { +func ReadKallsyms() { file, err := os.Open("/proc/kallsyms") if err != nil { logrus.Fatalf("failed to open /proc/kallsyms: %v", err)