aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Klauser <tklauser@distanz.ch>2022-08-18 19:15:20 +0200
committerGopher Robot <gobot@golang.org>2022-08-19 20:04:21 +0000
commit2cc6983a2103d64cd33a0fb67dc7ea2adcac3ba8 (patch)
tree13eb00bae41ce483886d3348d80d4e6caf835d13
parentdbc3b44f85e638c2247af02548d8b386996f4d37 (diff)
downloadgo-2cc6983a2103d64cd33a0fb67dc7ea2adcac3ba8.tar.xz
runtime/pprof: report MaxRSS on windows
Use GetProcessMemoryInfo to report MaxRSS in memory profiles on windows. Change-Id: I4ac5fe58961b1d5da8a5c1caa8a6e3d0a3281837 Reviewed-on: https://go-review.googlesource.com/c/go/+/424414 Reviewed-by: Cherry Mui <cherryyz@google.com> Reviewed-by: Joedian Reid <joedian@golang.org> Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> Auto-Submit: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gopher Robot <gobot@golang.org>
-rw-r--r--src/runtime/pprof/pprof_norusage.go2
-rw-r--r--src/runtime/pprof/pprof_windows.go22
2 files changed, 23 insertions, 1 deletions
diff --git a/src/runtime/pprof/pprof_norusage.go b/src/runtime/pprof/pprof_norusage.go
index 3d6052519c..8de38086c7 100644
--- a/src/runtime/pprof/pprof_norusage.go
+++ b/src/runtime/pprof/pprof_norusage.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-//go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris
+//go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows
package pprof
diff --git a/src/runtime/pprof/pprof_windows.go b/src/runtime/pprof/pprof_windows.go
new file mode 100644
index 0000000000..23ef2f80fe
--- /dev/null
+++ b/src/runtime/pprof/pprof_windows.go
@@ -0,0 +1,22 @@
+// Copyright 2022 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.
+
+package pprof
+
+import (
+ "fmt"
+ "internal/syscall/windows"
+ "io"
+ "syscall"
+ "unsafe"
+)
+
+func addMaxRSS(w io.Writer) {
+ var m windows.PROCESS_MEMORY_COUNTERS
+ p, _ := syscall.GetCurrentProcess()
+ err := windows.GetProcessMemoryInfo(p, &m, uint32(unsafe.Sizeof(m)))
+ if err == nil {
+ fmt.Fprintf(w, "# MaxRSS = %d\n", m.PeakWorkingSetSize)
+ }
+}