• Robert Griesemer's avatar
    math/big: more conservative use of lock for divisor table · 4bee88d4
    Robert Griesemer authored
    Minor performance impact running sequentially:
    
    benchmark                      old ns/op    new ns/op    delta
    BenchmarkString10Base2               389          391   +0.51%
    BenchmarkString100Base2             1530         1534   +0.26%
    BenchmarkString1000Base2           11789        11787   -0.02%
    BenchmarkString10000Base2         111443       112030   +0.53%
    BenchmarkString100000Base2       1017483      1015347   -0.21%
    BenchmarkString10Base8               339          344   +1.47%
    BenchmarkString100Base8              753          756   +0.40%
    BenchmarkString1000Base8            4618         4641   +0.50%
    BenchmarkString10000Base8          43217        43534   +0.73%
    BenchmarkString100000Base8        397518       400602   +0.78%
    BenchmarkString10Base10              630          630   +0.00%
    BenchmarkString100Base10            1975         1960   -0.76%
    BenchmarkString1000Base10          10179        10174   -0.05%
    BenchmarkString10000Base10         44527        44416   -0.25%
    BenchmarkString100000Base10     14404694     14425308   +0.14%
    BenchmarkString10Base16              283          288   +1.77%
    BenchmarkString100Base16             597          598   +0.17%
    BenchmarkString1000Base16           3189         3186   -0.09%
    BenchmarkString10000Base16         29403        29364   -0.13%
    BenchmarkString100000Base16       265657       265587   -0.03%
    
    Note that due to other improvements (faster assembly routines,
    better code generation by compiler), these benchmarks now run
    up to 37% faster than they used to at the last time measured (1/9/2012).
    
    Minor performance impact for StringPiParallel running in parallel:
    
    Current CL but with Lock/Unlock commented out (removed):
    
    BenchmarkStringPiParallel	    5000	    343581 ns/op
    BenchmarkStringPiParallel-2	   10000	    184511 ns/op
    BenchmarkStringPiParallel-3	   10000	    129768 ns/op
    BenchmarkStringPiParallel-4	   10000	    102326 ns/op
    
    Current CL:
    
    BenchmarkStringPiParallel	    5000	    345169 ns/op
    BenchmarkStringPiParallel-2	   10000	    185827 ns/op
    BenchmarkStringPiParallel-3	   10000	    131168 ns/op
    BenchmarkStringPiParallel-4	   10000	    102353 ns/op
    
    Fixes #4218.
    
    R=dvyukov, michael.jones, dave
    CC=golang-dev
    https://golang.org/cl/6643053
    4bee88d4
Name
Last commit
Last update
..
archive Loading commit data...
bufio Loading commit data...
builtin Loading commit data...
bytes Loading commit data...
compress Loading commit data...
container Loading commit data...
crypto Loading commit data...
database/sql Loading commit data...
debug Loading commit data...
encoding Loading commit data...
errors Loading commit data...
exp 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...
io Loading commit data...
log Loading commit data...
math Loading commit data...
mime Loading commit data...
net Loading commit data...
old/netchan Loading commit data...
os Loading commit data...
path 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...