(b *testing.B)
| 191 | } |
| 192 | |
| 193 | func 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, |
nothing calls this directly
no test coverage detected