Commit 3c4be235 authored by Lynn Boger's avatar Lynn Boger Committed by Ian Lance Taylor

runtime: Add memprofrate value to GODEBUG

Add memprofrate as a value recognized in GODEBUG.  The
value provided is used as the new setting for
runtime.MemProfileRate, allowing the user to
adjust memory profiling.

Change-Id: If129a247683263b11e2dd42473cf9b31280543d5
Reviewed-on: https://go-review.googlesource.com/3450Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
parent 3c0fee10
......@@ -45,6 +45,10 @@ a comma-separated list of name=val pairs. Supported names are:
This should only be used as a temporary workaround to diagnose buggy code.
The real fix is to not store integers in pointer-typed locations.
memprofrate: setting memprofrate=X will update the value of runtime.MemProfileRate.
When set to 0 memory profiling is disabled. Refer to the description of
MemProfileRate for the default value.
scheddetail: setting schedtrace=X and scheddetail=1 causes the scheduler to emit
detailed multiline info every X milliseconds, describing state of the scheduler,
processors, threads and goroutines.
......
......@@ -308,7 +308,10 @@ type dbgVar struct {
// TODO(rsc): Make GC respect debug.invalidptr.
// Holds variables parsed from GODEBUG env var.
// Holds variables parsed from GODEBUG env var,
// except for "memprofrate" since there is an
// existing int var for that value, which may
// already have an initial value.
var debug struct {
allocfreetrace int32
efence int32
......@@ -352,9 +355,17 @@ func parsedebugvars() {
continue
}
key, value := field[:i], field[i+1:]
for _, v := range dbgvars {
if v.name == key {
*v.value = int32(atoi(value))
// Update MemProfileRate directly here since it
// int, not int32, and should only be updated
// if specified in GODEBUG.
if key == "memprofrate" {
MemProfileRate = atoi(value)
} else {
for _, v := range dbgvars {
if v.name == key {
*v.value = int32(atoi(value))
}
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment