forked from mirrors/tar-split
tar/storage: adding Getter Putter benchmark
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
This commit is contained in:
parent
fc1e47e71d
commit
11281e8c09
1 changed files with 56 additions and 1 deletions
|
@ -4,6 +4,8 @@ import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"compress/gzip"
|
"compress/gzip"
|
||||||
"io"
|
"io"
|
||||||
|
"io/ioutil"
|
||||||
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -159,5 +161,58 @@ func TestGzip(t *testing.T) {
|
||||||
if len(entries) != len(e) {
|
if len(entries) != len(e) {
|
||||||
t.Errorf("expected %d entries, got %d", len(e), len(entries))
|
t.Errorf("expected %d entries, got %d", len(e), len(entries))
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func BenchmarkGetPut(b *testing.B) {
|
||||||
|
e := []Entry{
|
||||||
|
Entry{
|
||||||
|
Type: SegmentType,
|
||||||
|
Payload: []byte("how"),
|
||||||
|
},
|
||||||
|
Entry{
|
||||||
|
Type: SegmentType,
|
||||||
|
Payload: []byte("y'all"),
|
||||||
|
},
|
||||||
|
Entry{
|
||||||
|
Type: FileType,
|
||||||
|
Name: "./hurr.txt",
|
||||||
|
Payload: []byte("deadbeef"),
|
||||||
|
},
|
||||||
|
Entry{
|
||||||
|
Type: SegmentType,
|
||||||
|
Payload: []byte("doin"),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
b.RunParallel(func(pb *testing.PB) {
|
||||||
|
for pb.Next() {
|
||||||
|
func() {
|
||||||
|
fh, err := ioutil.TempFile("", "tar-split.")
|
||||||
|
if err != nil {
|
||||||
|
b.Fatal(err)
|
||||||
|
}
|
||||||
|
defer os.Remove(fh.Name())
|
||||||
|
defer fh.Close()
|
||||||
|
|
||||||
|
jp := NewJSONPacker(fh)
|
||||||
|
for i := range e {
|
||||||
|
if _, err := jp.AddEntry(e[i]); err != nil {
|
||||||
|
b.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fh.Sync()
|
||||||
|
|
||||||
|
up := NewJSONUnpacker(fh)
|
||||||
|
for {
|
||||||
|
_, err := up.Next()
|
||||||
|
if err != nil {
|
||||||
|
if err == io.EOF {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
b.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}()
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue