package main
import (
"bytes"
"encoding/gob"
"fmt"
"time"
)
type Thing struct {
B []byte
S string
I int
}
func main() {
var n bytes.Buffer
e := gob.NewEncoder(&n)
t := Thing{[]byte(p), p, 42}
count := 10000000
mark := time.Now()
for i := 0; i < count; i++ {
if err := e.Encode(t); err != nil {
panic(err)
}
n.Truncate(0)
t.I += 1
}
fmt.Printf("%f\n", time.Since(mark).Seconds())
}
var p = `` // Cut for space but is a 15,344 byte web page as a string
I had two versions of Go on my machine: 16c93a202587 (http://code.google.com/p/go/source/detail?r=16c93a202587f499... from March 1) and 9d60132d7784 (https://code.google.com/p/go/source/detail?r=9d60132d7784 from yesterday).Doing 10 runs of each and averaging the reported duration I see:
16c93a202587: 29.4829122s
9d60132d7784: 26.4422463s
So, in my test Go 1.1 (represented by 9d60132d7784) is 10% faster than a previous version from March.Tests were done on a AMD64 Linux.