(b *testing.B, sbufSize int64)
| 221 | } |
| 222 | |
| 223 | func benchFile(b *testing.B, sbufSize int64) { |
| 224 | mem := &memsys.MMSA{Name: "gmem", MinPctFree: 50} |
| 225 | mem.Init(0) |
| 226 | defer mem.Terminate(false) |
| 227 | |
| 228 | // reset initial conditions |
| 229 | cos.FreeMemToOS() |
| 230 | |
| 231 | file, err := os.CreateTemp("/tmp", "") |
| 232 | if err != nil { |
| 233 | b.Fatal(err) |
| 234 | } |
| 235 | n, _ := file.Write(make([]byte, largefil)) |
| 236 | if int64(n) != largefil { |
| 237 | b.Fatal(n, largefil) |
| 238 | } |
| 239 | |
| 240 | defer func() { |
| 241 | file.Close() |
| 242 | os.Remove(file.Name()) |
| 243 | }() |
| 244 | |
| 245 | slab, err := mem.GetSlab(sbufSize) |
| 246 | cos.AssertNoErr(err) |
| 247 | buf := slab.Alloc() |
| 248 | defer slab.Free(buf) |
| 249 | |
| 250 | if int64(len(buf)) != sbufSize { |
| 251 | b.Fatal(len(buf), sbufSize) |
| 252 | } |
| 253 | |
| 254 | b.ResetTimer() // start timing it |
| 255 | for i := 0; i < b.N; i++ { |
| 256 | file.Seek(0, io.SeekStart) |
| 257 | n, _ := io.CopyBuffer(io.Discard, file, buf) |
| 258 | if n != largefil { |
| 259 | b.Fatal(n, largefil) |
| 260 | } |
| 261 | } |
| 262 | b.StopTimer() // wo/ defers |
| 263 | } |
no test coverage detected