]> Cypherpunks repositories - gostls13.git/commitdiff
runtime/pprof: report MaxRSS on windows
authorTobias Klauser <tklauser@distanz.ch>
Thu, 18 Aug 2022 17:15:20 +0000 (19:15 +0200)
committerGopher Robot <gobot@golang.org>
Fri, 19 Aug 2022 20:04:21 +0000 (20:04 +0000)
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>

src/runtime/pprof/pprof_norusage.go
src/runtime/pprof/pprof_windows.go [new file with mode: 0644]

index 3d6052519c4e06cbe8cfef59a78190711e52fb5e..8de38086c716ce8fe3b69bae18eff348dd414a2a 100644 (file)
@@ -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 (file)
index 0000000..23ef2f8
--- /dev/null
@@ -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)
+       }
+}