| // Copyright 2019 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| //go:build darwin || linux |
| // +build darwin linux |
| |
| 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", "ios": |
| rssToBytes = 1 |
| default: |
| panic("unsupported OS") |
| } |
| |
| var rusage syscall.Rusage |
| syscall.Getrusage(0, &rusage) |
| fmt.Fprintf(w, "# MaxRSS = %d\n", uintptr(rusage.Maxrss)*rssToBytes) |
| } |