]> Cypherpunks repositories - gostls13.git/commitdiff
test/bench/go1: reduce fasta data size for linux/arm
authorDave Cheney <dave@cheney.net>
Tue, 5 Jun 2012 21:49:58 +0000 (07:49 +1000)
committerDave Cheney <dave@cheney.net>
Tue, 5 Jun 2012 21:49:58 +0000 (07:49 +1000)
As discussed on golang-dev, reduce the size of the fasta
dataset to make it possible to run the go1 benchmarks on
small ARM systems.

Also, remove the 25m suffix from fasta data and Revcomp.

linux/arm: pandaboard OMAP4

BenchmarkBinaryTree17          1        70892426000 ns/op
BenchmarkFannkuch11            1        35712066000 ns/op
BenchmarkGobDecode            10         137146000 ns/op           5.60 MB/s
BenchmarkGobEncode            50          64953000 ns/op          11.82 MB/s
BenchmarkGzip          1        5675690000 ns/op           3.42 MB/s
BenchmarkGunzip        1        1207001000 ns/op          16.08 MB/s
BenchmarkJSONEncode            5         860424800 ns/op           2.26 MB/s
BenchmarkJSONDecode            1        3321839000 ns/op           0.58 MB/s
BenchmarkMandelbrot200        50          45893560 ns/op
BenchmarkRevcomp              10         135220300 ns/op          18.80 MB/s
BenchmarkTemplate              1        6385681000 ns/op           0.30 MB/s

R=rsc, minux.ma, dsymonds
CC=golang-dev
https://golang.org/cl/6278048

test/bench/go1/fasta_test.go
test/bench/go1/revcomp_test.go

index dcb2d1055d9763253aeae8e3d01504b12959b66c..bff056fa90c9602a45024d4a82ae9dec3110325e 100644 (file)
@@ -4,9 +4,24 @@
 
 package go1
 
+import "runtime"
+
 // Not a benchmark; input for revcomp.
 
-var fasta25m = fasta(25e6)
+var fastabytes = makefasta()
+
+func makefasta() []byte {
+       var n int = 25e6
+       if runtime.GOARCH == "arm" {
+               // TODO(dfc) remove this limitation after precise gc.
+               // A value of 25e6 consumes 465mb of heap on 32bit 
+               // platforms, which is too much for most ARM systems. 
+               // A value of 25e5 produces a memory layout that 
+               // confuses the gc on 32bit platforms. So 25e4 it is.
+               n = 25e4
+       }
+       return fasta(n)
+}
 
 func fasta(n int) []byte {
        out := make(fastaBuffer, 0, 11*n)
index 9256164d76f3ccbcfa43887c73d4daa425dc062d..6b6c1e5772b99759469af7b006aa1f41d15de7e2 100644 (file)
@@ -77,9 +77,9 @@ func revcomp(data []byte) {
        }
 }
 
-func BenchmarkRevcomp25M(b *testing.B) {
-       b.SetBytes(int64(len(fasta25m)))
+func BenchmarkRevcomp(b *testing.B) {
+       b.SetBytes(int64(len(fastabytes)))
        for i := 0; i < b.N; i++ {
-               revcomp(fasta25m)
+               revcomp(fastabytes)
        }
 }