• Adam Langley's avatar
    math/big: save some copies in binaryGCD. · 133cdb67
    Adam Langley authored
    This patch resulted from a bit of quick optimisation in response to a
    golang-nuts post. It looks like one could save a couple other copies in
    this function, but this addresses the inner loop and is fairly simple.
    
    benchmark                    old ns/op    new ns/op    delta
    BenchmarkGCD10x10                 1964         1711  -12.88%
    BenchmarkGCD10x100                2019         1736  -14.02%
    BenchmarkGCD10x1000               2471         2171  -12.14%
    BenchmarkGCD10x10000              6040         5778   -4.34%
    BenchmarkGCD10x100000            43204        43025   -0.41%
    BenchmarkGCD100x100              11004         8520  -22.57%
    BenchmarkGCD100x1000             11820         9446  -20.08%
    BenchmarkGCD100x10000            23846        21382  -10.33%
    BenchmarkGCD100x100000          133691       131505   -1.64%
    BenchmarkGCD1000x1000           120041        95591  -20.37%
    BenchmarkGCD1000x10000          136887       113600  -17.01%
    BenchmarkGCD1000x100000         295370       273912   -7.26%
    BenchmarkGCD10000x10000        2556126      2205198  -13.73%
    BenchmarkGCD10000x100000       3159512      2808038  -11.12%
    BenchmarkGCD100000x100000    150543094    139986045   -7.01%
    
    R=gri, remyoudompheng
    CC=bradfitz, gobot, golang-dev, gri
    https://golang.org/cl/9424043
    133cdb67
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...
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...
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...