Files
node/utils/formatting/encoding_benchmark_test.go
zeekay 7cf87b230b node-unified is the node
The module already called itself github.com/luxfi/node while containing no node
in Go: cmd/luxd was twenty-one lines that printed the size of a few types, and
the Go column of the matrix measured a VM plugin. A repo that fetches the thing
it claims to be has not replaced it, so the Go sources move in — 1515 files,
the daemon and everything under it — and the build reaches outside this module
for nothing.

Rust and C++ sit beside it unchanged and are still measured against it by the
differential. That is the point of one repo: the reference implementation and
the two ports are the same checkout, so parity is a thing you can run rather
than a thing you assert.

Verified: builds, and the closure carries no lux-private — checked at build time
rather than believed. The daemon starts twelve chains on a local network
(P X C Q Z A B G K M F, plus D through its plugin) and reports healthy.
2026-09-07 16:15:25 -07:00

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)
}
})
}
}