some fixes to sonic and make it faster by reusing arrays.

BenchmarkParseMessage/relay/jsonstdlib-4              216   5651451 ns/op
BenchmarkParseMessage/relay/easyjson-4                313   3703457 ns/op
BenchmarkParseMessage/relay/simdjson-4                469   2606309 ns/op
BenchmarkParseMessage/relay/sonic-4                   966   1268594 ns/op

BenchmarkParseMessage/client/jsonstdlib-4             216   5524239 ns/op
BenchmarkParseMessage/client/easyjson-4               422   2756370 ns/op
BenchmarkParseMessage/client/simdjson-4               519   2298477 ns/op
BenchmarkParseMessage/client/sonic-4                  644   1860583 ns/op
This commit is contained in:
fiatjaf
2025-03-07 15:38:20 -03:00
parent 39bde22639
commit 8d7e854779
3 changed files with 248 additions and 171 deletions

View File

@@ -147,9 +147,11 @@ func TestParseMessage(t *testing.T) {
})
t.Run("sonic", func(t *testing.T) {
smp := NewSonicMessageParser()
for _, testCase := range testCases {
t.Run(testCase.Name, func(t *testing.T) {
envelope, err := ParseMessageSonic(testCase.Message)
envelope, err := smp.ParseMessage(testCase.Message)
if testCase.ExpectedEnvelope == nil && envelope == nil {
return