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
}