-
Dmitriy Vyukov authored
Implement the design described in: https://docs.google.com/document/d/1v4Oqa0WwHunqlb8C3ObL_uNQw3DfSY-ztoA-4wWbKcg/pub Summary of the changes: GC uses "2-bits per word" pointer type info embed directly into bitmap. Scanning of stacks/data/heap is unified. The old spans types go away. Compiler generates "sparse" 4-bits type info for GC (directly for GC bitmap). Linker generates "dense" 2-bits type info for data/bss (the same as stacks use). Summary of results: -1680 lines of code total (-1000+ in mgc0.c only) -25% memory consumption -3-7% binary size -15% GC pause reduction -7% run time reduction LGTM=khr R=golang-codereviews, rsc, christoph, khr CC=golang-codereviews, rlh https://golang.org/cl/106260045
cd17a717
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
all_test.go | ||
asm_386.s | ||
asm_amd64.s | ||
asm_amd64p32.s | ||
asm_arm.s | ||
deepequal.go | ||
example_test.go | ||
export_test.go | ||
makefunc.go | ||
set_test.go | ||
tostring_test.go | ||
type.go | ||
value.go |