MCPcopy
hub / github.com/NVIDIA/aistore / BenchmarkObjGetDiscard

Function BenchmarkObjGetDiscard

ais/tgtobj_test.go:193–268  ·  view source on GitHub ↗
(b *testing.B)

Source from the content-addressed store, hash-verified

191}
192
193func BenchmarkObjGetDiscard(b *testing.B) {
194 benches := []struct {
195 fileSize int64
196 chunked bool
197 }{
198 {fileSize: cos.KiB, chunked: false},
199 {fileSize: 512 * cos.KiB, chunked: false},
200 {fileSize: cos.MiB, chunked: false},
201 {fileSize: 2 * cos.MiB, chunked: false},
202 {fileSize: 4 * cos.MiB, chunked: false},
203 {fileSize: 16 * cos.MiB, chunked: false},
204
205 {fileSize: cos.KiB, chunked: true},
206 {fileSize: 512 * cos.KiB, chunked: true},
207 {fileSize: cos.MiB, chunked: true},
208 {fileSize: 2 * cos.MiB, chunked: true},
209 {fileSize: 4 * cos.MiB, chunked: true},
210 {fileSize: 16 * cos.MiB, chunked: true},
211 }
212
213 for _, bench := range benches {
214 benchName := cos.B2S(bench.fileSize, 2)
215 if bench.chunked {
216 benchName += "-chunked"
217 }
218 b.Run(benchName, func(b *testing.B) {
219 lom := cluster.AllocLOM("objname")
220 defer cluster.FreeLOM(lom)
221 err := lom.InitBck(&cmn.Bck{Name: testBucket, Provider: apc.ProviderAIS, Ns: cmn.NsGlobal})
222 if err != nil {
223 b.Fatal(err)
224 }
225
226 r, _ := readers.NewRandReader(bench.fileSize, cos.ChecksumNone)
227 poi := &putObjInfo{
228 atime: time.Now(),
229 t: t,
230 lom: lom,
231 r: r,
232 workFQN: path.Join(testMountpath, "objname.work"),
233 }
234 _, err = poi.putObject()
235 if err != nil {
236 b.Fatal(err)
237 }
238
239 if err := lom.Load(false, false); err != nil {
240 b.Fatal(err)
241 }
242
243 w := io.Discard
244 if !bench.chunked {
245 w = newDiscardRW()
246 }
247
248 goi := &getObjInfo{
249 atime: time.Now().UnixNano(),
250 t: t,

Callers

nothing calls this directly

Calls 12

putObjectMethod · 0.95
getObjectMethod · 0.95
B2SFunction · 0.92
AllocLOMFunction · 0.92
FreeLOMFunction · 0.92
NewRandReaderFunction · 0.92
newDiscardRWFunction · 0.85
InitBckMethod · 0.80
JoinMethod · 0.80
RunMethod · 0.65
LoadMethod · 0.45
RemoveMethod · 0.45

Tested by

no test coverage detected