From 2ca3bcea0bfab482ea093fba6f3d557bb565e827 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Wed, 10 Jan 2024 15:33:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96brotli=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/compressions/reader_brotli_test.go | 43 +++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/internal/compressions/reader_brotli_test.go b/internal/compressions/reader_brotli_test.go index 0872887..ec61141 100644 --- a/internal/compressions/reader_brotli_test.go +++ b/internal/compressions/reader_brotli_test.go @@ -6,6 +6,7 @@ import ( "bytes" "github.com/TeaOSLab/EdgeNode/internal/compressions" "io" + "os" "testing" ) @@ -49,3 +50,45 @@ func TestBrotliReader(t *testing.T) { } } } + +func BenchmarkBrotliReader(b *testing.B) { + data, err := os.ReadFile("./reader_brotli.go") + if err != nil { + b.Fatal(err) + } + var buf = bytes.NewBuffer([]byte{}) + writer, err := compressions.NewBrotliWriter(buf, 5) + if err != nil { + b.Fatal(err) + } + _, err = writer.Write(data) + err = writer.Close() + if err != nil { + b.Fatal(err) + } + var compressedData = buf.Bytes() + + b.ResetTimer() + b.RunParallel(func(pb *testing.PB) { + for pb.Next() { + reader, readerErr := compressions.NewBrotliReader(bytes.NewBuffer(compressedData)) + if readerErr != nil { + b.Fatal(readerErr) + } + var readBuf = make([]byte, 1024) + for { + _, readErr := reader.Read(readBuf) + if readErr != nil { + if readErr != io.EOF { + b.Fatal(readErr) + } + break + } + } + closeErr := reader.Close() + if closeErr != nil { + b.Fatal(closeErr) + } + } + }) +}