1. 08 Jan, 2015 11 commits
    • Rick Hudson's avatar
      runtime: increase GC concurrency. · db7fd1c1
      Rick Hudson authored
      run GC in its own background goroutine making the
      caller runnable if resources are available. This is
      critical in single goroutine applications.
      Allow goroutines that allocate a lot to help out
      the GC and in doing so throttle their own allocation.
      Adjust test so that it only detects that a GC is run
      during init calls and not whether the GC is memory
      efficient. Memory efficiency work will happen later
      in 1.5.
      
      Change-Id: I4306f5e377bb47c69bda1aedba66164f12b20c2b
      Reviewed-on: https://go-review.googlesource.com/2349Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
      Reviewed-by: 's avatarAustin Clements <austin@google.com>
      db7fd1c1
    • Robert Griesemer's avatar
      README: emphasize that we don't accept pull requests · f21ee1e1
      Robert Griesemer authored
      Change-Id: Ie31f957f6b60b0a9405147c7a0af789df01a4b02
      Reviewed-on: https://go-review.googlesource.com/2550Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      f21ee1e1
    • Austin Clements's avatar
      runtime: improve GC times printing · babeb4a9
      Austin Clements authored
      This improves the printing of GC times to be both more human-friendly
      and to provide enough information for the construction of MMU curves
      and other statistics.  The new times look like:
      
      GC: #8 72413852ns @143036695895725 pause=622900 maxpause=427037 goroutines=11 gomaxprocs=4
      GC:     sweep term: 190584ns	   max=190584	total=275001	procs=4
      GC:     scan:       260397ns	   max=260397	total=902666	procs=1
      GC:     install wb: 5279ns	   max=5279	total=18642	procs=4
      GC:     mark:       71530555ns	   max=71530555	total=186694660	procs=1
      GC:     mark term:  427037ns	   max=427037	total=1691184	procs=4
      
      This prints gomaxprocs and the number of procs used in each phase for
      the benefit of analyzing mutator utilization during concurrent phases.
      This also means the analysis doesn't have to hard-code which phases
      are STW.
      
      This prints the absolute start time only for the GC cycle.  The other
      start times can be derived from the phase durations.  This declutters
      the view for humans readers and doesn't pose any additional complexity
      for machine readers.
      
      This removes the confusing "cycle" terminology.  Instead, this places
      the phase duration after the phase name and adds a "ns" unit, which
      both makes it implicitly clear that this is the duration of that phase
      and indicates the units of the times.
      
      This adds a "GC:" prefix to all lines for easier identification.
      
      Finally, this generally cleans up the code as well as the placement of
      spaces in the output and adds print locking so the statistics blocks
      are never interrupted by other prints.
      
      Change-Id: Ifd056db83ed1b888de7dfa9a8fc5732b01ccc631
      Reviewed-on: https://go-review.googlesource.com/2542Reviewed-by: 's avatarRick Hudson <rlh@golang.org>
      babeb4a9
    • Robert Griesemer's avatar
      math/big: faster "pure Go" addition/subtraction for long vectors · 067acd51
      Robert Griesemer authored
                (platforms w/o corresponding assembly kernels)
      
      For short vector adds there's some erradic slow-down, but overall
      these routines have become significantly faster. This only matters
      for platforms w/o native (assembly) versions of these kernels, so
      we are not concerned about the minor slow-down for short vectors.
      
      This code was already reviewed under Mercurial (golang.org/cl/172810043)
      but wasn't submitted before the switch to git.
      
      Benchmarks run on 2.3GHz Intel Core i7, running OS X 10.9.5,
      with the respective AddVV and AddVW assembly routines disabled.
      
      benchmark              old ns/op     new ns/op     delta
      BenchmarkAddVV_1       6.59          7.09          +7.59%
      BenchmarkAddVV_2       10.3          10.1          -1.94%
      BenchmarkAddVV_3       10.9          12.6          +15.60%
      BenchmarkAddVV_4       13.9          15.6          +12.23%
      BenchmarkAddVV_5       16.8          17.3          +2.98%
      BenchmarkAddVV_1e1     29.5          29.9          +1.36%
      BenchmarkAddVV_1e2     246           232           -5.69%
      BenchmarkAddVV_1e3     2374          2185          -7.96%
      BenchmarkAddVV_1e4     58942         22292         -62.18%
      BenchmarkAddVV_1e5     668622        225279        -66.31%
      BenchmarkAddVW_1       6.81          5.58          -18.06%
      BenchmarkAddVW_2       7.69          6.86          -10.79%
      BenchmarkAddVW_3       9.56          8.32          -12.97%
      BenchmarkAddVW_4       12.1          9.53          -21.24%
      BenchmarkAddVW_5       13.2          10.9          -17.42%
      BenchmarkAddVW_1e1     23.4          18.0          -23.08%
      BenchmarkAddVW_1e2     175           141           -19.43%
      BenchmarkAddVW_1e3     1568          1266          -19.26%
      BenchmarkAddVW_1e4     15425         12596         -18.34%
      BenchmarkAddVW_1e5     156737        133539        -14.80%
      BenchmarkFibo          381678466     132958666     -65.16%
      
      benchmark              old MB/s     new MB/s     speedup
      BenchmarkAddVV_1       9715.25      9028.30      0.93x
      BenchmarkAddVV_2       12461.72     12622.60     1.01x
      BenchmarkAddVV_3       17549.64     15243.82     0.87x
      BenchmarkAddVV_4       18392.54     16398.29     0.89x
      BenchmarkAddVV_5       18995.23     18496.57     0.97x
      BenchmarkAddVV_1e1     21708.98     21438.28     0.99x
      BenchmarkAddVV_1e2     25956.53     27506.88     1.06x
      BenchmarkAddVV_1e3     26947.93     29286.66     1.09x
      BenchmarkAddVV_1e4     10857.96     28709.46     2.64x
      BenchmarkAddVV_1e5     9571.91      28409.21     2.97x
      BenchmarkAddVW_1       1175.28      1433.98      1.22x
      BenchmarkAddVW_2       2080.01      2332.54      1.12x
      BenchmarkAddVW_3       2509.28      2883.97      1.15x
      BenchmarkAddVW_4       2646.09      3356.83      1.27x
      BenchmarkAddVW_5       3020.69      3671.07      1.22x
      BenchmarkAddVW_1e1     3425.76      4441.40      1.30x
      BenchmarkAddVW_1e2     4553.17      5642.96      1.24x
      BenchmarkAddVW_1e3     5100.14      6318.72      1.24x
      BenchmarkAddVW_1e4     5186.15      6350.96      1.22x
      BenchmarkAddVW_1e5     5104.07      5990.74      1.17x
      
      Change-Id: I7a62023b1105248a0e85e5b9819d3fd4266123d4
      Reviewed-on: https://go-review.googlesource.com/2480Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
      Reviewed-by: 's avatarAlan Donovan <adonovan@google.com>
      067acd51
    • Robert Griesemer's avatar
      math/big: faster assembly kernels for AddVx/SubVx for amd64. · 80b3ff9f
      Robert Griesemer authored
      Replaced use of rotate instructions (RCRQ, RCLQ) with ADDQ/SBBQ
      for restoring/saving the carry flag per suggestion from Torbjörn
      Granlund (author of GMP bignum libs for C).
      The rotate instructions tend to be slower on todays machines.
      
      benchmark              old ns/op     new ns/op     delta
      BenchmarkAddVV_1       5.69          5.51          -3.16%
      BenchmarkAddVV_2       7.15          6.87          -3.92%
      BenchmarkAddVV_3       8.69          8.06          -7.25%
      BenchmarkAddVV_4       8.10          8.13          +0.37%
      BenchmarkAddVV_5       8.37          8.47          +1.19%
      BenchmarkAddVV_1e1     13.1          12.0          -8.40%
      BenchmarkAddVV_1e2     78.1          69.4          -11.14%
      BenchmarkAddVV_1e3     815           656           -19.51%
      BenchmarkAddVV_1e4     8137          7345          -9.73%
      BenchmarkAddVV_1e5     100127        93909         -6.21%
      BenchmarkAddVW_1       4.86          4.71          -3.09%
      BenchmarkAddVW_2       5.67          5.50          -3.00%
      BenchmarkAddVW_3       6.51          6.34          -2.61%
      BenchmarkAddVW_4       6.69          6.66          -0.45%
      BenchmarkAddVW_5       7.20          7.21          +0.14%
      BenchmarkAddVW_1e1     10.0          9.34          -6.60%
      BenchmarkAddVW_1e2     45.4          52.3          +15.20%
      BenchmarkAddVW_1e3     417           491           +17.75%
      BenchmarkAddVW_1e4     4760          4852          +1.93%
      BenchmarkAddVW_1e5     69107         67717         -2.01%
      
      benchmark              old MB/s      new MB/s      speedup
      BenchmarkAddVV_1       11241.82      11610.28      1.03x
      BenchmarkAddVV_2       17902.68      18631.82      1.04x
      BenchmarkAddVV_3       22082.43      23835.64      1.08x
      BenchmarkAddVV_4       31588.18      31492.06      1.00x
      BenchmarkAddVV_5       38229.90      37783.17      0.99x
      BenchmarkAddVV_1e1     48891.67      53340.91      1.09x
      BenchmarkAddVV_1e2     81940.61      92191.86      1.13x
      BenchmarkAddVV_1e3     78443.09      97480.44      1.24x
      BenchmarkAddVV_1e4     78644.18      87129.50      1.11x
      BenchmarkAddVV_1e5     63918.48      68150.84      1.07x
      BenchmarkAddVW_1       13165.09      13581.00      1.03x
      BenchmarkAddVW_2       22588.04      23275.41      1.03x
      BenchmarkAddVW_3       29483.82      30303.96      1.03x
      BenchmarkAddVW_4       38286.54      38453.21      1.00x
      BenchmarkAddVW_5       44414.57      44370.59      1.00x
      BenchmarkAddVW_1e1     63816.84      68494.08      1.07x
      BenchmarkAddVW_1e2     140885.41     122427.16     0.87x
      BenchmarkAddVW_1e3     153258.31     130325.28     0.85x
      BenchmarkAddVW_1e4     134447.63     131904.02     0.98x
      BenchmarkAddVW_1e5     92609.41      94509.88      1.02x
      
      Change-Id: Ia473e9ab9c63a955c252426684176bca566645ae
      Reviewed-on: https://go-review.googlesource.com/2503Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      80b3ff9f
    • Martin Möhrmann's avatar
      strconv: add atoi tests for uncommon bases and syntax errors · 878fa886
      Martin Möhrmann authored
      Edge cases like base 2 and 36 conversions are now covered.
      Many tests are mirrored from the itoa tests.
      
      Added more test cases for syntax errors.
      
      Change-Id: Iad8b2fb4854f898c2bfa18cdeb0cb4a758fcfc2e
      Reviewed-on: https://go-review.googlesource.com/2463Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Reviewed-by: 's avatarRobert Griesemer <gri@golang.org>
      878fa886
    • Alex Brainman's avatar
      syscall: use go generate to build zsyscall_windows.go · d00024bd
      Alex Brainman authored
      I would like to create new syscalls in src/internal/syscall,
      and I prefer not to add new shell scripts for that.
      
      Replacement for CL 136000043.
      
      Change-Id: I840116b5914a2324f516cdb8603c78973d28aeb4
      Reviewed-on: https://go-review.googlesource.com/1940Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
      d00024bd
    • Keith Randall's avatar
      test: shorten test runtime · fcfbeb3a
      Keith Randall authored
      This test was taking a long time, reduce its zealousness.
      
      Change-Id: Ib824247b84b0039a9ec690f72336bef3738d4c44
      Reviewed-on: https://go-review.googlesource.com/2502Reviewed-by: 's avatarJosh Bleecher Snyder <josharian@gmail.com>
      Reviewed-by: 's avatarMinux Ma <minux@golang.org>
      fcfbeb3a
    • Brad Fitzpatrick's avatar
      build: add GOTESTONLY environment test for Plan 9's run.rc · abb2aa20
      Brad Fitzpatrick authored
      $GOTESTONLY controls which set of tests gets run. Only "std" is
      supported. This should bring the time of plan9 builder down
      from 90 minutes to a maybe 10-15 minutes when running on GCE.
      
      (Plan 9 has performance problems when running on GCE, and/or with the
      os/exec package)
      
      This is a temporary workaround for one builder. The other Plan 9
      builders will continue to do full builds. The plan9 buidler will be
      renamed plan9-386-gcepartial or something to indicate it's not running
      the 'test/*' directory, or API tests. Go on Plan 9 has bigger problems
      for now. This lets us get trybots going sooner including Plan 9,
      without waiting 90+ minutes.
      
      Update #9491
      
      Change-Id: Ic505e9169c6b304ed4029b7bdfb77bb5c8fa8daa
      Reviewed-on: https://go-review.googlesource.com/2522Reviewed-by: 's avatarRob Pike <r@golang.org>
      abb2aa20
    • Brad Fitzpatrick's avatar
      build: increase Plan 9 timeout for runtime multi-CPU test, add temporary -v · e16ab38d
      Brad Fitzpatrick authored
      This isn't the final answer, but it will give us a clue about what's
      going on.
      
      Update #9491
      
      Change-Id: I997f6004eb97e86a4a89a8caabaf58cfdf92a8f0
      Reviewed-on: https://go-review.googlesource.com/2510Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      e16ab38d
    • Matthew Dempsky's avatar
      cmd/cgo, go/build: finish a cleanup TODO · ee94cd1d
      Matthew Dempsky authored
      Removing #cgo directive parsing from cmd/cgo was done in
      https://golang.org/cl/8610044.
      
      Change-Id: Id1bec58c6ec1f932df0ce0ee84ff253655bb73ff
      Reviewed-on: https://go-review.googlesource.com/2501Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      ee94cd1d
  2. 07 Jan, 2015 25 commits
  3. 06 Jan, 2015 4 commits