@cryptotaxi247 / kubo / commits / 414bdc78c

fix benchmarks

Jeromy committed Feb 4, 2015 at 05:39 UTC 414bdc78c067743c254e8d14601bb2f466d70514
1 file changed +78 -28
importer/importer_test.go
+78 -28
@@ -14,20 +14,20 @@ import (
14 u "github.com/jbenet/go-ipfs/util"
15 )
16
17 -func getBalancedDag(t testing.TB, size int64) (*dag.Node, dag.DAGService) {
17 +func getBalancedDag(t testing.TB, size int64, blksize int) (*dag.Node, dag.DAGService) {
18 ds := mdtest.Mock(t)
19 r := io.LimitReader(u.NewTimeSeededRand(), size)
20 - nd, err := BuildDagFromReader(r, ds, nil, chunk.DefaultSplitter)
20 + nd, err := BuildDagFromReader(r, ds, nil, &chunk.SizeSplitter{blksize})
21 if err != nil {
22 t.Fatal(err)
23 }
24 return nd, ds
25 }
26
27 -func getTrickleDag(t testing.TB, size int64) (*dag.Node, dag.DAGService) {
27 +func getTrickleDag(t testing.TB, size int64, blksize int) (*dag.Node, dag.DAGService) {
28 ds := mdtest.Mock(t)
29 r := io.LimitReader(u.NewTimeSeededRand(), size)
30 - nd, err := BuildTrickleDagFromReader(r, ds, nil, chunk.DefaultSplitter)
30 + nd, err := BuildTrickleDagFromReader(r, ds, nil, &chunk.SizeSplitter{blksize})
31 if err != nil {
32 t.Fatal(err)
33 }
@@ -60,42 +60,92 @@ func TestBalancedDag(t *testing.T) {
60 }
61 }
62
63 -func BenchmarkBalancedRead(b *testing.B) {
63 +func BenchmarkBalancedReadSmallBlock(b *testing.B) {
64 b.StopTimer()
65 - nd, ds := getBalancedDag(b, int64(b.N))
65 + nbytes := int64(10000000)
66 + nd, ds := getBalancedDag(b, nbytes, 4096)
67
67 - read, err := uio.NewDagReader(context.TODO(), nd, ds)
68 - if err != nil {
69 - b.Fatal(err)
68 + b.StartTimer()
69 + for i := 0; i < b.N; i++ {
70 + read, err := uio.NewDagReader(context.TODO(), nd, ds)
71 + if err != nil {
72 + b.Fatal(err)
73 + }
74 + n, err := io.Copy(ioutil.Discard, read)
75 + if err != nil {
76 + b.Fatal(err)
77 + }
78 + if n != nbytes {
79 + b.Fatal("Failed to read correct amount")
80 + }
81 }
82 + b.SetBytes(nbytes)
83 +}
84 +
85 +func BenchmarkTrickleReadSmallBlock(b *testing.B) {
86 + b.StopTimer()
87 + nbytes := int64(10000000)
88 + nd, ds := getTrickleDag(b, nbytes, 4096)
89
90 b.StartTimer()
73 - b.SetBytes(int64(b.N))
74 - n, err := io.Copy(ioutil.Discard, read)
75 - if err != nil {
76 - b.Fatal(err)
77 - }
78 - if n != int64(b.N) {
79 - b.Fatal("Failed to read correct amount")
91 + for i := 0; i < b.N; i++ {
92 + read, err := uio.NewDagReader(context.TODO(), nd, ds)
93 + if err != nil {
94 + b.Fatal(err)
95 + }
96 +
97 + n, err := io.Copy(ioutil.Discard, read)
98 + if err != nil {
99 + b.Fatal(err)
100 + }
101 + if n != nbytes {
102 + b.Fatal("Failed to read correct amount")
103 + }
104 }
105 + b.SetBytes(nbytes)
106 }
107
83 -func BenchmarkTrickleRead(b *testing.B) {
108 +func BenchmarkBalancedReadFull(b *testing.B) {
109 b.StopTimer()
85 - nd, ds := getTrickleDag(b, int64(b.N))
110 + nbytes := int64(10000000)
111 + nd, ds := getBalancedDag(b, nbytes, chunk.DefaultBlockSize)
112
87 - read, err := uio.NewDagReader(context.TODO(), nd, ds)
88 - if err != nil {
89 - b.Fatal(err)
113 + b.StartTimer()
114 + for i := 0; i < b.N; i++ {
115 + read, err := uio.NewDagReader(context.TODO(), nd, ds)
116 + if err != nil {
117 + b.Fatal(err)
118 + }
119 + n, err := io.Copy(ioutil.Discard, read)
120 + if err != nil {
121 + b.Fatal(err)
122 + }
123 + if n != nbytes {
124 + b.Fatal("Failed to read correct amount")
125 + }
126 }
127 + b.SetBytes(nbytes)
128 +}
129 +
130 +func BenchmarkTrickleReadFull(b *testing.B) {
131 + b.StopTimer()
132 + nbytes := int64(10000000)
133 + nd, ds := getTrickleDag(b, nbytes, chunk.DefaultBlockSize)
134
135 b.StartTimer()
93 - b.SetBytes(int64(b.N))
94 - n, err := io.Copy(new(bytes.Buffer), read)
95 - if err != nil {
96 - b.Fatal(err)
97 - }
98 - if n != int64(b.N) {
99 - b.Fatal("Failed to read correct amount")
136 + for i := 0; i < b.N; i++ {
137 + read, err := uio.NewDagReader(context.TODO(), nd, ds)
138 + if err != nil {
139 + b.Fatal(err)
140 + }
141 +
142 + n, err := io.Copy(ioutil.Discard, read)
143 + if err != nil {
144 + b.Fatal(err)
145 + }
146 + if n != nbytes {
147 + b.Fatal("Failed to read correct amount")
148 + }
149 }
150 + b.SetBytes(nbytes)
151 }