]> Cypherpunks.ru repositories - gostls13.git/blobdiff - src/runtime/extern.go
runtime: add execution tracer v2 behind GOEXPERIMENT=exectracer2
[gostls13.git] / src / runtime / extern.go
index ac07119cb94e5ab7647948a1d761b97fa130feab..f8db296e6ba67f73290b0cd69be39f68247f4d86 100644 (file)
@@ -5,7 +5,7 @@
 /*
 Package runtime contains operations that interact with Go's runtime system,
 such as functions to control goroutines. It also includes the low-level type information
-used by the reflect package; see reflect's documentation for the programmable
+used by the reflect package; see [reflect]'s documentation for the programmable
 interface to the run-time type system.
 
 # Environment Variables
@@ -87,7 +87,8 @@ It is a comma-separated list of name=val pairs setting these named variables:
 
        gctrace: setting gctrace=1 causes the garbage collector to emit a single line to standard
        error at each collection, summarizing the amount of memory collected and the
-       length of the pause. The format of this line is subject to change.
+       length of the pause. The format of this line is subject to change. Included in
+       the explanation below is also the relevant runtime/metrics metric for each field.
        Currently, it is:
                gc # @#s #%: #+#+# ms clock, #+#/#/#+# ms cpu, #->#-># MB, # MB goal, # MB stacks, #MB globals, # P
        where the fields are as follows:
@@ -95,11 +96,11 @@ It is a comma-separated list of name=val pairs setting these named variables:
                @#s          time in seconds since program start
                #%           percentage of time spent in GC since program start
                #+...+#      wall-clock/CPU times for the phases of the GC
-               #->#-># MB   heap size at GC start, at GC end, and live heap
-               # MB goal    goal heap size
-               # MB stacks  estimated scannable stack size
-               # MB globals scannable global size
-               # P          number of processors used
+               #->#-># MB   heap size at GC start, at GC end, and live heap, or /gc/scan/heap:bytes
+               # MB goal    goal heap size, or /gc/heap/goal:bytes
+               # MB stacks  estimated scannable stack size, or /gc/scan/stack:bytes
+               # MB globals scannable global size, or /gc/scan/globals:bytes
+               # P          number of processors used, or /sched/gomaxprocs:threads
        The phases are stop-the-world (STW) sweep termination, concurrent
        mark and scan, and STW mark termination. The CPU times
        for mark/scan are broken down in to assist time (GC performed in
@@ -187,6 +188,10 @@ It is a comma-separated list of name=val pairs setting these named variables:
        This increases tracer overhead, but could be helpful as a workaround or for
        debugging unexpected regressions caused by frame pointer unwinding.
 
+       traceadvanceperiod: the approximate period in nanoseconds between trace generations. Only
+       applies if a program is built with GOEXPERIMENT=exectracer2. Used primarily for testing
+       and debugging the execution tracer.
+
        asyncpreemptoff: asyncpreemptoff=1 disables signal-based
        asynchronous goroutine preemption. This makes some loops
        non-preemptible for long periods, which may delay GC and
@@ -284,10 +289,10 @@ func Caller(skip int) (pc uintptr, file string, line int, ok bool) {
 // It returns the number of entries written to pc.
 //
 // To translate these PCs into symbolic information such as function
-// names and line numbers, use CallersFrames. CallersFrames accounts
+// names and line numbers, use [CallersFrames]. CallersFrames accounts
 // for inlined functions and adjusts the return program counters into
 // call program counters. Iterating over the returned slice of PCs
-// directly is discouraged, as is using FuncForPC on any of the
+// directly is discouraged, as is using [FuncForPC] on any of the
 // returned PCs, since these cannot account for inlining or return
 // program counter adjustment.
 func Callers(skip int, pc []uintptr) int {