mirror of
https://github.com/ipfs/kubo.git
synced 2025-10-25 18:36:26 +08:00
add benchmark
This commit is contained in:
@ -23,7 +23,7 @@ import (
|
|||||||
context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/golang.org/x/net/context"
|
context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/golang.org/x/net/context"
|
||||||
)
|
)
|
||||||
|
|
||||||
func getMockDagServ(t *testing.T) mdag.DAGService {
|
func getMockDagServ(t testing.TB) mdag.DAGService {
|
||||||
dstore := ds.NewMapDatastore()
|
dstore := ds.NewMapDatastore()
|
||||||
tsds := sync.MutexWrap(dstore)
|
tsds := sync.MutexWrap(dstore)
|
||||||
bstore := blockstore.NewBlockstore(tsds)
|
bstore := blockstore.NewBlockstore(tsds)
|
||||||
@ -34,7 +34,7 @@ func getMockDagServ(t *testing.T) mdag.DAGService {
|
|||||||
return mdag.NewDAGService(bserv)
|
return mdag.NewDAGService(bserv)
|
||||||
}
|
}
|
||||||
|
|
||||||
func getNode(t *testing.T, dserv mdag.DAGService, size int64) ([]byte, *mdag.Node) {
|
func getNode(t testing.TB, dserv mdag.DAGService, size int64) ([]byte, *mdag.Node) {
|
||||||
in := io.LimitReader(u.NewTimeSeededRand(), size)
|
in := io.LimitReader(u.NewTimeSeededRand(), size)
|
||||||
node, err := imp.BuildTrickleDagFromReader(in, dserv, nil, &chunk.SizeSplitter{500})
|
node, err := imp.BuildTrickleDagFromReader(in, dserv, nil, &chunk.SizeSplitter{500})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -423,6 +423,35 @@ func TestDagTruncate(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func BenchmarkDagmodWrite(b *testing.B) {
|
||||||
|
b.StopTimer()
|
||||||
|
dserv := getMockDagServ(b)
|
||||||
|
_, n := getNode(b, dserv, 0)
|
||||||
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
|
wrsize := 4096
|
||||||
|
|
||||||
|
dagmod, err := NewDagModifier(ctx, n, dserv, nil, &chunk.SizeSplitter{Size: 512})
|
||||||
|
if err != nil {
|
||||||
|
b.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
buf := make([]byte, b.N*wrsize)
|
||||||
|
u.NewTimeSeededRand().Read(buf)
|
||||||
|
b.StartTimer()
|
||||||
|
b.SetBytes(int64(wrsize))
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
n, err := dagmod.Write(buf[i*wrsize : (i+1)*wrsize])
|
||||||
|
if err != nil {
|
||||||
|
b.Fatal(err)
|
||||||
|
}
|
||||||
|
if n != wrsize {
|
||||||
|
b.Fatal("Wrote bad size")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func arrComp(a, b []byte) error {
|
func arrComp(a, b []byte) error {
|
||||||
if len(a) != len(b) {
|
if len(a) != len(b) {
|
||||||
return fmt.Errorf("Arrays differ in length. %d != %d", len(a), len(b))
|
return fmt.Errorf("Arrays differ in length. %d != %d", len(a), len(b))
|
||||||
|
|||||||
Reference in New Issue
Block a user