diff --git a/benchmark/jsoniter.txt b/benchmark/jsoniter.txt new file mode 100644 index 0000000000000000000000000000000000000000..99af3e7c3f13fe6fe721171eae7de6bed8263f6a --- /dev/null +++ b/benchmark/jsoniter.txt @@ -0,0 +1,12 @@ +goos: linux +goarch: amd64 +pkg: gfx.cafe/open/jrpc/benchmark +cpu: 13th Gen Intel(R) Core(TM) i9-13900K +BenchmarkSimpleSuite/WebSocket/SingleClient-32 19402 72574 ns/op 4069 B/op 75 allocs/op +BenchmarkSimpleSuite/WebSocket/SingleClient#01-32 15 73535455 ns/op 94923340 B/op 178 allocs/op +BenchmarkSimpleSuite/IoPipe/SingleClient-32 98760 11833 ns/op 4110 B/op 77 allocs/op +BenchmarkSimpleSuite/IoPipe/SingleClient#01-32 15 68246193 ns/op 89429374 B/op 136 allocs/op +BenchmarkSimpleSuite/Http/SingleClient-32 15355 99638 ns/op 22660 B/op 225 allocs/op +BenchmarkSimpleSuite/Http/SingleClient#01-32 16 72943398 ns/op 131715502 B/op 284 allocs/op +PASS +ok gfx.cafe/open/jrpc/benchmark 13.889s diff --git a/benchmark/suite_test.go b/benchmark/suite_test.go index 14d2a7e586bf217a21a8f9ba6fee5cfd86983d90..e608a22a2b551ab56c6aab45c7419b3e534b36c9 100644 --- a/benchmark/suite_test.go +++ b/benchmark/suite_test.go @@ -26,6 +26,12 @@ func TestBenchmarkSuite(t *testing.T) { t.Error(err) } }) + makeTest("SingleClientLarge", func(t *testing.T, h jsonrpc.Handler, client jsonrpc.Conn) { + err := client.Do(ctx, nil, "large_largeResp", nil) + if err != nil { + t.Error(err) + } + }) } func runBenchmarkSuite(b *testing.B, sm jrpctest.ServerMaker) { @@ -44,10 +50,17 @@ func runBenchmarkSuite(b *testing.B, sm jrpctest.ServerMaker) { } } }) + makeBench("SingleClient", func(b *testing.B, h jsonrpc.Handler, client jsonrpc.Conn) { + for i := 0; i < b.N; i++ { + err := client.Do(ctx, nil, "large_largeResp", nil) + if err != nil { + panic(err) + } + } + }) } func BenchmarkSimpleSuite(b *testing.B) { - makers := map[string]jrpctest.ServerMaker{ "Http": http.ServerMaker, "WebSocket": websocket.ServerMaker,