• Dmitriy Vyukov's avatar
    runtime: increase page size to 8K · e48751e2
    Dmitriy Vyukov authored
    Tcmalloc uses 8K, 32K and 64K pages, and in custom setups 256K pages.
    Only Chromium uses 4K pages today (in "slow but small" configuration).
    The general tendency is to increase page size, because it reduces
    metadata size and DTLB pressure.
    This change reduces GC pause by ~10% and slightly improves other metrics.
    
    json-1
    allocated                 8037492      8038689      +0.01%
    allocs                     105762       105573      -0.18%
    cputime                 158400000    155800000      -1.64%
    gc-pause-one              4412234      4135702      -6.27%
    gc-pause-total            2647340      2398707      -9.39%
    rss                      54923264     54525952      -0.72%
    sys-gc                    3952624      3928048      -0.62%
    sys-heap                 46399488     46006272      -0.85%
    sys-other                 5597504      5290304      -5.49%
    sys-stack                  393216       393216      +0.00%
    sys-total                56342832     55617840      -1.29%
    time                    158478890    156046916      -1.53%
    virtual-mem             256548864    256593920      +0.02%
    
    garbage-1
    allocated                 2991113      2986259      -0.16%
    allocs                      62844        62652      -0.31%
    cputime                  16330000     15860000      -2.88%
    gc-pause-one            789108229    725555211      -8.05%
    gc-pause-total            3945541      3627776      -8.05%
    rss                    1143660544   1132253184      -1.00%
    sys-gc                   65609600     65806208      +0.30%
    sys-heap               1032388608   1035599872      +0.31%
    sys-other                37501632     22777664     -39.26%
    sys-stack                 8650752      8781824      +1.52%
    sys-total              1144150592   1132965568      -0.98%
    time                     16364602     15891994      -2.89%
    virtual-mem            1327296512   1313746944      -1.02%
    
    This is the exact reincarnation of already LGTMed:
    https://golang.org/cl/45770044
    which must not break darwin/freebsd after:
    https://golang.org/cl/56630043
    TBR=iant
    
    LGTM=khr, iant
    R=iant, khr
    CC=golang-codereviews
    https://golang.org/cl/58230043
    e48751e2
mem.go 2.3 KB