Extend benchmark with different size

This commit is contained in:
Ingo Oppermann
2024-04-29 12:34:07 +02:00
parent e935678b39
commit 4dab7b8e6c

View File

@@ -2,12 +2,15 @@ package compress
import (
"bytes"
"fmt"
"io"
"net/http"
"net/http/httptest"
"os"
"testing"
"github.com/datarhei/core/v16/math/rand"
"github.com/andybalholm/brotli"
"github.com/klauspost/compress/gzip"
"github.com/klauspost/compress/zstd"
@@ -287,31 +290,37 @@ func TestCompressWithStatic(t *testing.T) {
func BenchmarkCompress(b *testing.B) {
schemes := getTestcases()
for scheme := range schemes {
b.Run(scheme.String(), func(b *testing.B) {
e := echo.New()
for i := 1; i <= 18; i++ {
datalen := 2 << i
data := []byte(rand.String(datalen))
req := httptest.NewRequest(http.MethodGet, "/", nil)
req.Header.Set(echo.HeaderAcceptEncoding, scheme.String())
for scheme := range schemes {
name := fmt.Sprintf("%s-%d", scheme.String(), datalen)
b.Run(name, func(b *testing.B) {
e := echo.New()
h := NewWithConfig(Config{Level: BestSpeed, Schemes: []Scheme{scheme}})(func(c echo.Context) error {
c.Response().Write([]byte("testtesttesttesttesttesttesttesttesttesttesttesttest"))
return nil
req := httptest.NewRequest(http.MethodGet, "/", nil)
req.Header.Set(echo.HeaderAcceptEncoding, scheme.String())
h := NewWithConfig(Config{Level: BestSpeed, Schemes: []Scheme{scheme}})(func(c echo.Context) error {
c.Response().Write(data)
return nil
})
b.ReportAllocs()
b.ResetTimer()
for i := 0; i < b.N; i++ {
rec := httptest.NewRecorder()
c := e.NewContext(req, rec)
h(c)
}
})
b.ReportAllocs()
b.ResetTimer()
for i := 0; i < b.N; i++ {
rec := httptest.NewRecorder()
c := e.NewContext(req, rec)
h(c)
}
})
}
}
}
func BenchmarkCompressLarge(b *testing.B) {
func BenchmarkCompressJSON(b *testing.B) {
data, err := os.ReadFile("./fixtures/processList.json")
require.NoError(b, err)