Skip to content

Commit

Permalink
doc: add release notes for allocation headers
Browse files Browse the repository at this point in the history
For #61422.

Change-Id: Ia7cb2721e52d9ccd932a49e0c331868eb7749f94
Reviewed-on: https://go-review.googlesource.com/c/go/+/546027
Reviewed-by: Cherry Mui <cherryyz@google.com>
Auto-Submit: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
  • Loading branch information
mknyszek committed Dec 1, 2023
1 parent cf3d253 commit 3220bbe
Showing 1 changed file with 20 additions and 6 deletions.
26 changes: 20 additions & 6 deletions doc/go1.22.html
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,26 @@ <h3 id="vet">Vet</h3>

<h2 id="runtime">Runtime</h2>

<p>
TODO: complete this section, or delete if not needed
<p><!-- CL 543255 -->
The runtime now keeps type-based garbage collection metadata nearer to each
heap object, improving the CPU performance (latency or throughput) of Go programs
by 1&mdash;3%.
This change also reduces the memory overhead of the majority Go programs by
approximately 1% by deduplicating redundant metadata.
Some programs may see a smaller improvement because this change adjusts the size
class boundaries of the memory allocator, so some objects may be moved up a size
class.
<br />
A consequence of this change is that some objects' addresses that were previously
always aligned to a 16 byte (or higher) boundary will now only be aligned to an 8
byte boundary.
Some programs that use assembly instructions that require memory addresses to be
more than 8-byte aligned and rely on the memory allocator's previous alignment behavior
may break, but we expect such programs to be rare.
Such programs may be built with <code>GOEXPERIMENT=noallocheaders</code> to revert
to the old metadata layout and restore the previous alignment behavior, but package
owners should update their assembly code to avoid the alignment assumption, as this
workaround will be removed in a future release.
</p>

<h2 id="compiler">Compiler</h2>
Expand Down Expand Up @@ -517,10 +535,6 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
<p><!-- https://go.dev/issue/61015 -->
TODO: <a href="https://go.dev/issue/61015">https://go.dev/issue/61015</a>: change mutex profile to scale contention by number of blocked goroutines
</p>

<p><!-- CL 543255 -->
TODO: <a href="https://go.dev/cl/543255">https://go.dev/cl/543255</a>: runtime: put allocation headers back at the start the object
</p>
</dd>
</dl><!-- runtime -->

Expand Down

0 comments on commit 3220bbe

Please sign in to comment.