Files
node/utils/formatting/encoding_benchmark_test.go

69 lines
1.3 KiB
Go

// Copyright (C) 2019-2025, Lux Industries Inc. All rights reserved.
// See the file LICENSE for licensing terms.
package formatting
import (
"fmt"
"math/rand"
"testing"
"github.com/stretchr/testify/require"
"github.com/luxfi/units"
)
func BenchmarkEncodings(b *testing.B) {
benchmarks := []struct {
encoding Encoding
size int
}{
{
encoding: Hex,
size: int(1 * units.KiB), // 1kb
},
{
encoding: Hex,
size: int(4 * units.KiB), // 4kb
},
{
encoding: Hex,
size: int(32 * units.KiB), // 32kb
},
{
encoding: Hex,
size: int(128 * units.KiB), // 128kb
},
{
encoding: Hex,
size: int(256 * units.KiB), // 256kb
},
{
encoding: Hex,
size: int(512 * units.KiB), // 512kb
},
{
encoding: Hex,
size: int(1 * units.MiB), // 1mb
},
{
encoding: Hex,
size: int(2 * units.MiB), // 2mb
},
{
encoding: Hex,
size: int(4 * units.MiB), // 4mb
},
}
for _, benchmark := range benchmarks {
bytes := make([]byte, benchmark.size)
_, _ = rand.Read(bytes) // #nosec G404
b.Run(fmt.Sprintf("%s-%d bytes", benchmark.encoding, benchmark.size), func(b *testing.B) {
for n := 0; n < b.N; n++ {
_, err := Encode(benchmark.encoding, bytes)
require.NoError(b, err)
}
})
}
}