• Dmitriy Vyukov's avatar
    runtime: faster finalizers · c14b2689
    Dmitriy Vyukov authored
    Linux/amd64, 2 x Intel Xeon E5620, 8 HT cores, 2.40GHz
    benchmark                    old ns/op    new ns/op    delta
    BenchmarkFinalizer              420.00       261.00  -37.86%
    BenchmarkFinalizer-2            985.00       201.00  -79.59%
    BenchmarkFinalizer-4           1077.00       244.00  -77.34%
    BenchmarkFinalizer-8           1155.00       180.00  -84.42%
    BenchmarkFinalizer-16          1182.00       184.00  -84.43%
    
    BenchmarkFinalizerRun          2128.00      1378.00  -35.24%
    BenchmarkFinalizerRun-2        1655.00      1418.00  -14.32%
    BenchmarkFinalizerRun-4        1634.00      1522.00   -6.85%
    BenchmarkFinalizerRun-8        2213.00      1581.00  -28.56%
    BenchmarkFinalizerRun-16       2424.00      1599.00  -34.03%
    
    Darwin/amd64, Intel L9600, 2 cores, 2.13GHz
    benchmark                    old ns/op    new ns/op    delta
    BenchmarkChanCreation          1451.00       926.00  -36.18%
    BenchmarkChanCreation-2        3124.00      1412.00  -54.80%
    BenchmarkChanCreation-4        6121.00      2628.00  -57.07%
    
    BenchmarkFinalizer              684.00       420.00  -38.60%
    BenchmarkFinalizer-2          11195.00       398.00  -96.44%
    BenchmarkFinalizer-4          15862.00       654.00  -95.88%
    
    BenchmarkFinalizerRun          2025.00      1397.00  -31.01%
    BenchmarkFinalizerRun-2        3920.00      1447.00  -63.09%
    BenchmarkFinalizerRun-4        9471.00      1545.00  -83.69%
    
    R=golang-dev, cw, rsc
    CC=golang-dev
    https://golang.org/cl/4963057
    c14b2689
Name
Last commit
Last update
..
bench Loading commit data...
bugs Loading commit data...
chan Loading commit data...
dwarf Loading commit data...
fixedbugs Loading commit data...
garbage Loading commit data...
interface Loading commit data...
ken Loading commit data...
syntax Loading commit data...
235.go Loading commit data...
64bit.go Loading commit data...
append.go Loading commit data...
args.go Loading commit data...
assign.go Loading commit data...
assign1.go Loading commit data...
bigalg.go Loading commit data...
bigmap.go Loading commit data...
blank.go Loading commit data...
blank1.go Loading commit data...
chancap.go Loading commit data...
char_lit.go Loading commit data...
char_lit1.go Loading commit data...
closedchan.go Loading commit data...
closure.go Loading commit data...
cmp.go Loading commit data...
cmp6.go Loading commit data...
cmplx.go Loading commit data...
cmplxdivide.c Loading commit data...
cmplxdivide.go Loading commit data...
cmplxdivide1.go Loading commit data...
complit.go Loading commit data...
compos.go Loading commit data...
const.go Loading commit data...
const1.go Loading commit data...
const2.go Loading commit data...
const3.go Loading commit data...
convert.go Loading commit data...
convert3.go Loading commit data...
convlit.go Loading commit data...
convlit1.go Loading commit data...
copy.go Loading commit data...
ddd.go Loading commit data...
ddd1.go Loading commit data...
ddd2.go Loading commit data...
ddd3.go Loading commit data...
decl.go Loading commit data...
declbad.go Loading commit data...
defer.go Loading commit data...
deferprint.go Loading commit data...
divide.go Loading commit data...
empty.go Loading commit data...
env.go Loading commit data...
eof.go Loading commit data...
eof1.go Loading commit data...
errchk Loading commit data...
escape.go Loading commit data...
escape2.go Loading commit data...
escape3.go Loading commit data...
float_lit.go Loading commit data...
floatcmp.go Loading commit data...
for.go Loading commit data...
func.go Loading commit data...
func1.go Loading commit data...
func2.go Loading commit data...
func3.go Loading commit data...
func4.go Loading commit data...
func5.go Loading commit data...
func6.go Loading commit data...
func7.go Loading commit data...
gc.go Loading commit data...
gc1.go Loading commit data...
gc2.go Loading commit data...
golden.out Loading commit data...
goprint.go Loading commit data...
goto.go Loading commit data...
hashmap.go Loading commit data...
helloworld.go Loading commit data...
if.go Loading commit data...
import.go Loading commit data...
import1.go Loading commit data...
import2.go Loading commit data...
import3.go Loading commit data...
import4.go Loading commit data...
index.go Loading commit data...
indirect.go Loading commit data...
indirect1.go Loading commit data...
init.go Loading commit data...
initcomma.go Loading commit data...
initialize.go Loading commit data...
initializerr.go Loading commit data...
initsyscall.go Loading commit data...
int_lit.go Loading commit data...
intcvt.go Loading commit data...
iota.go Loading commit data...
label.go Loading commit data...
label1.go Loading commit data...
literal.go Loading commit data...
malloc1.go Loading commit data...
mallocfin.go Loading commit data...
mallocrand.go Loading commit data...
mallocrep.go Loading commit data...
mallocrep1.go Loading commit data...
map.go Loading commit data...
map1.go Loading commit data...
method.go Loading commit data...
method1.go Loading commit data...
method2.go Loading commit data...
method3.go Loading commit data...
named.go Loading commit data...
named1.go Loading commit data...
nil.go Loading commit data...
nilptr.go Loading commit data...
nul1.go Loading commit data...
parentype.go Loading commit data...
peano.go Loading commit data...
printbig.go Loading commit data...
range.go Loading commit data...
recover.go Loading commit data...
recover1.go Loading commit data...
recover2.go Loading commit data...
recover3.go Loading commit data...
rename.go Loading commit data...
rename1.go Loading commit data...
run Loading commit data...
runtime.go Loading commit data...
shift1.go Loading commit data...
shift2.go Loading commit data...
sieve.go Loading commit data...
sigchld.go Loading commit data...
simassign.go Loading commit data...
sinit.go Loading commit data...
sizeof.go Loading commit data...
solitaire.go Loading commit data...
stack.go Loading commit data...
string_lit.go Loading commit data...
stringrange.go Loading commit data...
struct0.go Loading commit data...
switch.go Loading commit data...
switch1.go Loading commit data...
test0.go Loading commit data...
turing.go Loading commit data...
typeswitch.go Loading commit data...
typeswitch1.go Loading commit data...
typeswitch2.go Loading commit data...
undef.go Loading commit data...
utf.go Loading commit data...
varerr.go Loading commit data...
varinit.go Loading commit data...
vectors.go Loading commit data...
zerodivide.go Loading commit data...