@@ -51,6 +51,8 @@ <h2 id="ports">Ports</h2>
51
51
<!-- replace CallImport with go:wasmimport directive -->
52
52
</ p >
53
53
54
+ < h3 id ="wasip1 "> WebAssembly</ h3 >
55
+
54
56
<!-- https://go.dev/issue/59149 -->
55
57
< p >
56
58
<!-- allow the use of go:wasmimport globally -->
@@ -61,6 +63,13 @@ <h2 id="ports">Ports</h2>
61
63
<!-- cmd/compile: remove go:wasmimport restriction -->
62
64
</ p >
63
65
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
+
64
73
65
74
< h3 id ="wasip1 "> WebAssembly System Interface</ h3 >
66
75
@@ -121,6 +130,27 @@ <h2 id="runtime">Runtime</h2>
121
130
valuable for debugging stack overflows.
122
131
</ p >
123
132
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
+
124
154
< h2 id ="compiler "> Compiler</ h2 >
125
155
126
156
<!-- CL 490819 -->
@@ -638,9 +668,35 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
638
668
< p > <!-- CL 474915 -->
639
669
TODO: < a href ="https://go.dev/cl/474915 "> https://go.dev/cl/474915</ a > : runtime: support GOTRACEBACK=wer on Windows
640
670
</ 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 >
641
683
</ dd >
642
684
</ dl > <!-- runtime -->
643
685
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
+
644
700
< dl id ="slices "> < dt > < a href ="/pkg/slices/ "> slices</ a > </ dt >
645
701
< dd >
646
702
< p > <!-- https://go.dev/issue/54768 -->
0 commit comments