mirror of
https://github.com/luxfi/node.git
synced 2026-07-27 03:39:39 +00:00
69 lines
1.3 KiB
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)
|
|
}
|
|
})
|
|
}
|
|
}
|