| 29 | ) |
| 30 | |
| 31 | func BenchmarkBufferedWriteSyncer(b *testing.B) { |
| 32 | b.Run("write file with buffer", func(b *testing.B) { |
| 33 | file, err := os.CreateTemp(b.TempDir(), "test.log") |
| 34 | require.NoError(b, err) |
| 35 | |
| 36 | defer func() { |
| 37 | assert.NoError(b, file.Close()) |
| 38 | }() |
| 39 | |
| 40 | w := &BufferedWriteSyncer{ |
| 41 | WS: AddSync(file), |
| 42 | } |
| 43 | defer func() { |
| 44 | assert.NoError(b, w.Stop(), "failed to stop buffered write syncer") |
| 45 | }() |
| 46 | b.ResetTimer() |
| 47 | b.RunParallel(func(pb *testing.PB) { |
| 48 | for pb.Next() { |
| 49 | if _, err := w.Write([]byte("foobarbazbabble")); err != nil { |
| 50 | b.Fatal(err) |
| 51 | } |
| 52 | } |
| 53 | }) |
| 54 | }) |
| 55 | } |