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>
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)
}