From f3e051a184ddd060f1e17200b0081648411fa073 Mon Sep 17 00:00:00 2001 From: Michael Pratt Date: Mon, 6 Jun 2022 17:20:44 -0400 Subject: [PATCH] runtime: document GOMEMLIMIT in environment variables section For #48409. Change-Id: Ia6616a377bc4c871b7ffba6f5a59792a09b64809 Reviewed-on: https://go-review.googlesource.com/c/go/+/410734 Run-TryBot: Michael Pratt TryBot-Result: Gopher Robot Reviewed-by: Chris Hines Reviewed-by: Russ Cox --- src/runtime/extern.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/runtime/extern.go b/src/runtime/extern.go index 54378885dc..15c519d233 100644 --- a/src/runtime/extern.go +++ b/src/runtime/extern.go @@ -18,8 +18,19 @@ The GOGC variable sets the initial garbage collection target percentage. A collection is triggered when the ratio of freshly allocated data to live data remaining after the previous collection reaches this percentage. The default is GOGC=100. Setting GOGC=off disables the garbage collector entirely. -The runtime/debug package's SetGCPercent function allows changing this -percentage at run time. See https://golang.org/pkg/runtime/debug/#SetGCPercent. +[runtime/debug.SetGCPercent] allows changing this percentage at run time. + +The GOMEMLIMIT variable sets a soft memory limit for the runtime. This memory limit +includes the Go heap and all other memory managed by the runtime, and excludes +external memory sources such as mappings of the binary itself, memory managed in +other languages, and memory held by the operating system on behalf of the Go +program. GOMEMLIMIT is a numeric value in bytes with an optional unit suffix. +The supported suffixes include B, KiB, MiB, GiB, and TiB. These suffixes +represent quantities of bytes as defined by the IEC 80000-13 standard. That is, +they are based on powers of two: KiB means 2^10 bytes, MiB means 2^20 bytes, +and so on. The default setting is math.MaxInt64, which effectively disables the +memory limit. [runtime/debug.SetMemoryLimit] allows changing this limit at run +time. The GODEBUG variable controls debugging variables within the runtime. It is a comma-separated list of name=val pairs setting these named variables: -- 2.48.1