• Austin Clements's avatar
    runtime: make next_gc ^0 when GC is disabled · fa9b57bb
    Austin Clements authored
    When GC is disabled, we set gcpercent to -1. However, we still use
    gcpercent to compute several values, such as next_gc and gc_trigger.
    These calculations are meaningless when gcpercent is -1 and result in
    meaningless values. This is okay in a sense because we also never use
    these values if gcpercent is -1, but they're confusing when exposed to
    the user, for example via MemStats or the execution trace. It's
    particularly unfortunate in the execution trace because it attempts to
    plot the underflowed value of next_gc, which scales all useful
    information in the heap row into oblivion.
    
    Fix this by making next_gc ^0 when gcpercent < 0. This has the
    advantage of being true in a way: next_gc is effectively infinite when
    gcpercent < 0. We can also detect this special value when updating the
    execution trace and report next_gc as 0 so it doesn't blow up the
    display of the heap line.
    
    Change-Id: I4f366e4451f8892a4908da7b2b6086bdc67ca9a9
    Reviewed-on: https://go-review.googlesource.com/30016Reviewed-by: 's avatarRick Hudson <rlh@golang.org>
    fa9b57bb
Name
Last commit
Last update
..
archive Loading commit data...
bufio Loading commit data...
builtin Loading commit data...
bytes Loading commit data...
cmd Loading commit data...
compress Loading commit data...
container Loading commit data...
context Loading commit data...
crypto Loading commit data...
database/sql Loading commit data...
debug Loading commit data...
encoding Loading commit data...
errors Loading commit data...
expvar Loading commit data...
flag Loading commit data...
fmt Loading commit data...
go Loading commit data...
hash Loading commit data...
html Loading commit data...
image Loading commit data...
index/suffixarray Loading commit data...
internal Loading commit data...
io Loading commit data...
log Loading commit data...
math Loading commit data...
mime Loading commit data...
net Loading commit data...
os Loading commit data...
path Loading commit data...
plugin Loading commit data...
reflect Loading commit data...
regexp Loading commit data...
runtime Loading commit data...
sort Loading commit data...
strconv Loading commit data...
strings Loading commit data...
sync Loading commit data...
syscall Loading commit data...
testing Loading commit data...
text Loading commit data...
time Loading commit data...
unicode Loading commit data...
unsafe Loading commit data...
vendor/golang_org/x Loading commit data...
Make.dist Loading commit data...
all.bash Loading commit data...
all.bat Loading commit data...
all.rc Loading commit data...
androidtest.bash Loading commit data...
bootstrap.bash Loading commit data...
buildall.bash Loading commit data...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
cmp.bash Loading commit data...
iostest.bash Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
naclmake.bash Loading commit data...
nacltest.bash Loading commit data...
race.bash Loading commit data...
race.bat Loading commit data...
run.bash Loading commit data...
run.bat Loading commit data...
run.rc Loading commit data...