Skip to content

RPC Benchmarks

René Jochum edited this page Dec 5, 2023 · 36 revisions

The rps benchmark sends X bytes (default 1000) to server which echoes it to the client.

2023-12-03 @jochumdev

  • My workstation:

    • OS: Arch GNU/Linux
    • CPU: AMD Ryzen 5900X 12-Core @ 3.7 - 4.8GHz
    • Memory: 32GiB DDR4-5200
  • go version go1.21.4 linux/amd64

  • cmd: go run . --transport hertzhttp

    time=2023-12-03T09:51:31.732+01:00 level=INFO msg=Config bypass_registry=1 connections=256 duration=15 timeout=8 threads=24 transport=h2c package_size=1000 content_type=application/x-protobuf
    time=2023-12-03T09:51:32.233+01:00 level=INFO msg="Using transport" transport=h2c
    time=2023-12-03T09:51:32.233+01:00 level=INFO msg="Warming up..."
    time=2023-12-03T09:51:47.234+01:00 level=INFO msg="Now running the benchmark"
    time=2023-12-03T09:52:02.235+01:00 level=INFO msg="Sum results" reqsOk=468757 reqsError=0
    
    Transport reqs reqs w/o hertz
    hertzhttp 3.791.320 -
    hertzh2c 3.776.005 -
    grpc 1.678.491 1.856.984
    h2c 468.757 474.295
    http 504.178 512.270
    h2c 442.568 473.109
    https 1.897.435 1.940.082
    http3 698.213 704.568

Clone this wiki locally