1
0
mirror of https://github.com/golang/go synced 2024-11-18 12:04:57 -07:00

runtime/pprof: fix units of MaxRSS on Linux

Rusage.Maxrss is in bytes on Darwin but in KiB on Linux. Fix this
discrepancy so it's always in bytes.

Change-Id: Ic714abc3276566b8fe5e30565072092212610854
Reviewed-on: https://go-review.googlesource.com/c/go/+/230979
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Jeremy Faller <jeremy@golang.org>
This commit is contained in:
Austin Clements 2020-04-29 15:06:21 -04:00
parent 45cd312394
commit 197a2a3799

View File

@ -9,12 +9,23 @@ package pprof
import (
"fmt"
"io"
"runtime"
"syscall"
)
// Adds MaxRSS to platforms that are supported.
func addMaxRSS(w io.Writer) {
var rssToBytes uintptr
switch runtime.GOOS {
case "linux", "android":
rssToBytes = 1024
case "darwin":
rssToBytes = 1
default:
panic("unsupported OS")
}
var rusage syscall.Rusage
syscall.Getrusage(0, &rusage)
fmt.Fprintf(w, "# MaxRSS = %d\n", rusage.Maxrss)
fmt.Fprintf(w, "# MaxRSS = %d\n", uintptr(rusage.Maxrss)*rssToBytes)
}