mirror of
https://github.com/golang/go
synced 2024-11-25 09:07:58 -07:00
doc: add release notes for allocation headers
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>
This commit is contained in:
parent
cf3d253c1b
commit
3220bbe1fb
@ -83,8 +83,26 @@ Do not send CLs removing the interior tags from such phrases.
|
|||||||
|
|
||||||
<h2 id="runtime">Runtime</h2>
|
<h2 id="runtime">Runtime</h2>
|
||||||
|
|
||||||
<p>
|
<p><!-- CL 543255 -->
|
||||||
TODO: complete this section, or delete if not needed
|
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—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>
|
</p>
|
||||||
|
|
||||||
<h2 id="compiler">Compiler</h2>
|
<h2 id="compiler">Compiler</h2>
|
||||||
@ -517,10 +535,6 @@ Do not send CLs removing the interior tags from such phrases.
|
|||||||
<p><!-- https://go.dev/issue/61015 -->
|
<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
|
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>
|
||||||
|
|
||||||
<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>
|
</dd>
|
||||||
</dl><!-- runtime -->
|
</dl><!-- runtime -->
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user