Monorepo for Tangled
0

Configure Feed

Select the types of activity you want to include in your feed.

knotserver: log memory usage in repo.compare

Signed-off-by: oppiliappan <me@oppi.li>

oppiliappan (May 3, 2026, 5:59 PM +0100) e2150e84 38f31f7e

+35
+35
knotserver/xrpc/repo_compare.go
··· 2 2 3 3 import ( 4 4 "fmt" 5 + "log/slog" 5 6 "net/http" 7 + "runtime" 6 8 7 9 "github.com/bluekeyes/go-gitdiff/gitdiff" 10 + "github.com/dustin/go-humanize" 8 11 "tangled.org/core/knotserver/git" 9 12 "tangled.org/core/types" 10 13 xrpcerr "tangled.org/core/xrpc/errors" 11 14 ) 12 15 13 16 func (x *Xrpc) RepoCompare(w http.ResponseWriter, r *http.Request) { 17 + var memBefore runtime.MemStats 18 + runtime.ReadMemStats(&memBefore) 19 + defer func() { 20 + var memAfter runtime.MemStats 21 + runtime.ReadMemStats(&memAfter) 22 + 23 + x.Logger.Info("repo.compare memory", 24 + slog.Group("request", 25 + slog.String("repo", r.URL.Query().Get("repo")), 26 + slog.String("rev1", r.URL.Query().Get("rev1")), 27 + slog.String("rev2", r.URL.Query().Get("rev2")), 28 + ), 29 + slog.Group("mem_before", 30 + slog.String("heap_alloc", humanize.IBytes(memBefore.HeapAlloc)), 31 + slog.String("heap_inuse", humanize.IBytes(memBefore.HeapInuse)), 32 + slog.String("total_alloc", humanize.IBytes(memBefore.TotalAlloc)), 33 + slog.String("sys", humanize.IBytes(memBefore.Sys)), 34 + ), 35 + slog.Group("mem_after", 36 + slog.String("heap_alloc", humanize.IBytes(memAfter.HeapAlloc)), 37 + slog.String("heap_inuse", humanize.IBytes(memAfter.HeapInuse)), 38 + slog.String("total_alloc", humanize.IBytes(memAfter.TotalAlloc)), 39 + slog.String("sys", humanize.IBytes(memAfter.Sys)), 40 + ), 41 + slog.Group("mem_delta", 42 + slog.String("total_alloc", humanize.IBytes(memAfter.TotalAlloc-memBefore.TotalAlloc)), 43 + slog.Uint64("mallocs", memAfter.Mallocs-memBefore.Mallocs), 44 + slog.Uint64("num_gc", uint64(memAfter.NumGC-memBefore.NumGC)), 45 + ), 46 + ) 47 + }() 48 + 14 49 repo := r.URL.Query().Get("repo") 15 50 repoPath, err := x.parseRepoParam(repo) 16 51 if err != nil {