@cryptotaxi247 / kubo / commits / 58d5c852f

add benchmark

Jeromy committed Mar 9, 2015 at 16:37 UTC 58d5c852fd23be6be3eebee132737573d88516a5
1 file changed +31 -2
unixfs/mod/dagmodifier_test.go
+31 -2
@@ -23,7 +23,7 @@ import (
23 context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/golang.org/x/net/context"
24 )
25
26 -func getMockDagServ(t *testing.T) mdag.DAGService {
26 +func getMockDagServ(t testing.TB) mdag.DAGService {
27 dstore := ds.NewMapDatastore()
28 tsds := sync.MutexWrap(dstore)
29 bstore := blockstore.NewBlockstore(tsds)
@@ -34,7 +34,7 @@ func getMockDagServ(t *testing.T) mdag.DAGService {
34 return mdag.NewDAGService(bserv)
35 }
36
37 -func getNode(t *testing.T, dserv mdag.DAGService, size int64) ([]byte, *mdag.Node) {
37 +func getNode(t testing.TB, dserv mdag.DAGService, size int64) ([]byte, *mdag.Node) {
38 in := io.LimitReader(u.NewTimeSeededRand(), size)
39 node, err := imp.BuildTrickleDagFromReader(in, dserv, nil, &chunk.SizeSplitter{500})
40 if err != nil {
@@ -423,6 +423,35 @@ func TestDagTruncate(t *testing.T) {
423 }
424 }
425
426 +func BenchmarkDagmodWrite(b *testing.B) {
427 + b.StopTimer()
428 + dserv := getMockDagServ(b)
429 + _, n := getNode(b, dserv, 0)
430 + ctx, cancel := context.WithCancel(context.Background())
431 + defer cancel()
432 +
433 + wrsize := 4096
434 +
435 + dagmod, err := NewDagModifier(ctx, n, dserv, nil, &chunk.SizeSplitter{Size: 512})
436 + if err != nil {
437 + b.Fatal(err)
438 + }
439 +
440 + buf := make([]byte, b.N*wrsize)
441 + u.NewTimeSeededRand().Read(buf)
442 + b.StartTimer()
443 + b.SetBytes(int64(wrsize))
444 + for i := 0; i < b.N; i++ {
445 + n, err := dagmod.Write(buf[i*wrsize : (i+1)*wrsize])
446 + if err != nil {
447 + b.Fatal(err)
448 + }
449 + if n != wrsize {
450 + b.Fatal("Wrote bad size")
451 + }
452 + }
453 +}
454 +
455 func arrComp(a, b []byte) error {
456 if len(a) != len(b) {
457 return fmt.Errorf("Arrays differ in length. %d != %d", len(a), len(b))