Skip to content

Commit b03d121

Browse files
mknyszekgopherbot
authored andcommitted
doc: write various runtime-related release notes
This includes release notes for several small runtime changes, including runtime/trace and runtime package changes. For #58645. Change-Id: I3e9c804da1bb6b385088e16a20d9576c11098021 Reviewed-on: https://go-review.googlesource.com/c/go/+/497095 Auto-Submit: Michael Knyszek <[email protected]> Reviewed-by: Austin Clements <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Reviewed-by: Ansiwen <[email protected]> Reviewed-by: Felix Geisendörfer <[email protected]> Run-TryBot: Michael Knyszek <[email protected]> Reviewed-by: Michael Pratt <[email protected]>
1 parent f96e193 commit b03d121

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

doc/go1.21.html

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ <h2 id="ports">Ports</h2>
5151
<!-- replace CallImport with go:wasmimport directive -->
5252
</p>
5353

54+
<h3 id="wasip1">WebAssembly</h3>
55+
5456
<!-- https://go.dev/issue/59149 -->
5557
<p>
5658
<!-- allow the use of go:wasmimport globally -->
@@ -61,6 +63,13 @@ <h2 id="ports">Ports</h2>
6163
<!-- cmd/compile: remove go:wasmimport restriction -->
6264
</p>
6365

66+
<!-- https://go.dev/issue/56100 -->
67+
<p>
68+
The Go scheduler now interacts much more efficiently with the
69+
JavaScript event loop, especially in applications that block
70+
frequently on asynchronous events.
71+
</p>
72+
6473

6574
<h3 id="wasip1">WebAssembly System Interface</h3>
6675

@@ -121,6 +130,27 @@ <h2 id="runtime">Runtime</h2>
121130
valuable for debugging stack overflows.
122131
</p>
123132

133+
<p><!-- https://go.dev/issue/59960 -->
134+
On Linux platforms that support transparent huge pages, the Go runtime
135+
now manages which parts of the heap may be backed by huge pages more
136+
explicitly. This leads to better utilization of memory: small heaps
137+
should see less memory used (up to 50% in pathological cases) while
138+
large heaps should see fewer broken huge pages for dense parts of the
139+
heap, improving CPU usage and latency by up to 1%.
140+
</p>
141+
142+
<p><!-- https://go.dev/issue/57069, https://go.dev/issue/56966 -->
143+
As a result of runtime-internal garbage collection tuning,
144+
applications may see up to a 40% reduction in application tail latency
145+
and a small decrease in memory use. Some applications may also observe
146+
a small loss in throughput.
147+
148+
The memory use decrease should be proportional to the loss in
149+
throughput, such that the previous release's throughput/memory
150+
tradeoff may be recovered (with little change to latency) by
151+
increasing <code>GOGC</code> and/or <code>GOMEMLIMIT</code> slightly.
152+
</p>
153+
124154
<h2 id="compiler">Compiler</h2>
125155

126156
<!-- CL 490819 -->
@@ -638,9 +668,35 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
638668
<p><!-- CL 474915 -->
639669
TODO: <a href="https://go.dev/cl/474915">https://go.dev/cl/474915</a>: runtime: support GOTRACEBACK=wer on Windows
640670
</p>
671+
672+
<p><!-- https://go.dev/issue/46787 -->
673+
A new type <code>Pinner</code> has been added to the runtime
674+
package. <code>Pinner</code>s may be used to "pin" Go memory
675+
such that it may be used more freely by non-Go code. For instance,
676+
passing Go values that reference pinned Go memory to C code is
677+
now allowed. Previously, passing any such nested reference was
678+
disallowed by the
679+
<a href="https://pkg.go.dev/cmd/cgo#hdr-Passing_pointers">cgo pointer passing rules.</a>
680+
681+
See <a href="/pkg/runtime#Pinner">the docs</a> for more details.
682+
</p>
641683
</dd>
642684
</dl><!-- runtime -->
643685

686+
<dl id="runtime/trace"><dt><a href="/pkg/runtime/trace/">runtime/trace</a></dt>
687+
<dd>
688+
<p><!-- https://go.dev/issue/16638 -->
689+
Collecting traces on amd64 and arm64 now incurs a substantially
690+
smaller CPU cost: up to a 10x improvement over the previous release.
691+
</p>
692+
693+
<p><!-- CL 494495 -->
694+
Traces now contain explicit stop-the-world events for every reason
695+
the Go runtime might stop-the-world, not just garbage collection.
696+
</p>
697+
</dd>
698+
</dl><!-- runtime/trace -->
699+
644700
<dl id="slices"><dt><a href="/pkg/slices/">slices</a></dt>
645701
<dd>
646702
<p><!-- https://go.dev/issue/54768 -->

0 commit comments

Comments
 (0)