1. 30 May, 2012 1 commit
    • Nigel Tao's avatar
      exp/html: add some tokenizer and parser benchmarks. · 034fa90d
      Nigel Tao authored
      $GOROOT/src/pkg/exp/html/testdata/go1.html is an execution of the
      $GOROOT/doc/go1.html template by godoc.
      
      Sample numbers on my linux,amd64 desktop:
      BenchmarkParser	     500	   4699198 ns/op	  16.63 MB/s
      --- BENCH: BenchmarkParser
              parse_test.go:409: 1 iterations, 14653 mallocs per iteration
              parse_test.go:409: 100 iterations, 14651 mallocs per iteration
              parse_test.go:409: 500 iterations, 14651 mallocs per iteration
      BenchmarkRawLevelTokenizer	    2000	    904957 ns/op	  86.37 MB/s
      --- BENCH: BenchmarkRawLevelTokenizer
              token_test.go:657: 1 iterations, 28 mallocs per iteration
              token_test.go:657: 100 iterations, 28 mallocs per iteration
              token_test.go:657: 2000 iterations, 28 mallocs per iteration
      BenchmarkLowLevelTokenizer	    2000	   1134300 ns/op	  68.91 MB/s
      --- BENCH: BenchmarkLowLevelTokenizer
              token_test.go:657: 1 iterations, 41 mallocs per iteration
              token_test.go:657: 100 iterations, 41 mallocs per iteration
              token_test.go:657: 2000 iterations, 41 mallocs per iteration
      BenchmarkHighLevelTokenizer	    1000	   2096179 ns/op	  37.29 MB/s
      --- BENCH: BenchmarkHighLevelTokenizer
              token_test.go:657: 1 iterations, 6616 mallocs per iteration
              token_test.go:657: 100 iterations, 6616 mallocs per iteration
              token_test.go:657: 1000 iterations, 6616 mallocs per iteration
      
      R=rsc
      CC=andybalholm, golang-dev, r
      https://golang.org/cl/6257067
      034fa90d
  2. 29 May, 2012 23 commits
  3. 28 May, 2012 7 commits
  4. 27 May, 2012 1 commit
  5. 26 May, 2012 1 commit
  6. 25 May, 2012 6 commits
  7. 24 May, 2012 1 commit
    • Nigel Tao's avatar
      hash/adler32: optimize. · 60ffae25
      Nigel Tao authored
      The bulk of the gains come from hoisting the modulo ops outside of
      the inner loop.
      
      Reducing the digest type from 8 bytes to 4 bytes gains another 1% on
      the hash/adler32 micro-benchmark.
      
      Benchmarks for $GOOS,$GOARCH = linux,amd64 below.
      
      hash/adler32 benchmark:
      benchmark             old ns/op    new ns/op    delta
      BenchmarkAdler32KB         1660         1364  -17.83%
      
      image/png benchmark:
      benchmark                       old ns/op    new ns/op    delta
      BenchmarkDecodeGray               2466909      2425539   -1.68%
      BenchmarkDecodeNRGBAGradient      9884500      9751705   -1.34%
      BenchmarkDecodeNRGBAOpaque        8511615      8379800   -1.55%
      BenchmarkDecodePaletted           1366683      1330677   -2.63%
      BenchmarkDecodeRGB                6987496      6884974   -1.47%
      BenchmarkEncodePaletted           6292408      6040052   -4.01%
      BenchmarkEncodeRGBOpaque         19780680     19178440   -3.04%
      BenchmarkEncodeRGBA              80738600     79076800   -2.06%
      
      Wall time for Denis Cheremisov's PNG-decoding program given in
      https://groups.google.com/group/golang-nuts/browse_thread/thread/22aa8a05040fdd49
      Before: 2.44s
      After:  2.26s
      Delta:  -7%
      
      R=rsc
      CC=golang-dev
      https://golang.org/cl/6251044
      60ffae25