• Dmitriy Vyukov's avatar
    runtime: simpler and faster GC · cd17a717
    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
api Loading commit data...
doc Loading commit data...
include Loading commit data...
lib Loading commit data...
misc Loading commit data...
src Loading commit data...
test Loading commit data...
.hgignore Loading commit data...
.hgtags Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
PATENTS Loading commit data...
README Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...