servicetitan / Stl.Fusion

Build real-time apps (Blazor included) with less than 1% of extra code responsible for real-time updates. Host 10-1000x faster APIs relying on transparent and nearly 100% consistent caching. We call it DREAM, or Distributed REActive Memoization, and it's here to turn real-time on!
MIT License
1.82k stars 106 forks source link

Compared performance to gRPC with heavy payloads #674

Open rchoffardet opened 2 months ago

rchoffardet commented 2 months ago

Hey 👋🏻

Firstly, thanks for your invested efforts and the openly publishing of your library. This "issue" isn't really an issue, it's more like a conversation :)

My team and I are interested in alternative to gRPC such as your library and with the claimed performance improvement, it looked very promising.

However, I played a bit with your benchmark and found that with heavier load (10kB and 100kB) Slt.Fusion performs worse than gRPC on my machine (the payload is just a constant random string) whereas it's a known weakness of gRPC.

Stl.Rpc: Light : 354.64K 400.21K 405.08K 394.14K -> 405.08K calls/s Medium : 52.71K 53.84K 52.92K 52.75K -> 53.84K calls/s Heavy : 5.98K 6.04K 6.19K 5.95K -> 6.19K calls/s gRPC: Light : 138.20K 195.26K 226.40K 227.11K -> 227.11K calls/s Medium : 57.93K 60.00K 60.61K 60.96K -> 60.96K calls/s Heavy : 7.03K 7.11K 7.02K 7.20K -> 7.20K calls/s

Light is 1kB, Medium is 10kB and Heavy is 100kB.

Do you observe similar relative numbers? Am I doing something wrong?

Regards