Skip to content

Benchmark Results

Updated: 2026-01-22
ActualLab.Fusion Version: 11.4.7

This page summarizes benchmark results from ActualLab.Fusion.Samples repository.

We ran each benchmark 2 times and took the best result for each test.

Test Environment

ComponentSpecification
CPUAMD Ryzen 9 9950X3D 16-Core Processor
RAM96 GB DDR5
OSWindows 11
.NET Version10.0.1

Note that Ryzen 9 9950X3D has 32 logical cores due to SMT.

Reference Redis Benchmark

Reference benchmark using redis-benchmark tool on the same machine (500K requests, best of 5 runs). Optimal client count (12) was determined via binary search over 1-1000 range.

OperationResult
PING_INLINE231.59K req/s
GET229.25K req/s
SET229.67K req/s

Run-Benchmark.cmd

The benchmark measures throughput of a simple repository-style user lookup service that retrieves and updates user records from a database: UserService.Get(userId) and Update(userId, ...).

To run the benchmark:

powershell
dotnet run -c Release --project src/Benchmark/Benchmark.csproj --no-launch-profile

Local Services

TestResultSpeedup
Regular Service136.91K calls/s
Fusion Service263.62M calls/s~1,926x

Remote Services

TestResultSpeedup
HTTP Client → Regular Service99.66K calls/s
HTTP Client → Fusion Service420.67K calls/s~4.2x
ActualLab.Rpc Client → Fusion Service6.10M calls/s~61x
Fusion Client → Fusion Service223.15M calls/s~2,239x

Run-RpcBenchmark.cmd

This benchmark compares ActualLab.Rpc with gRPC, SignalR, and other RPC frameworks. The tables below include only ActualLab.Rpc, gRPC, and SignalR. Other options, such as StreamJsonRpc and RESTful API, are way slower, so we omit them.

There are two benchmarks in RpcBenchmark project:

RPC calls:

powershell
dotnet run -c Release --project src/RpcBenchmark/RpcBenchmark.csproj --no-launch-profile -- test -b calls -l rpc,grpc,signalr -f msgpack5c -n 4

RPC streaming:

powershell
dotnet run -c Release --project src/RpcBenchmark/RpcBenchmark.csproj --no-launch-profile -- test -b streams -l rpc,grpc,signalr -f msgpack5c -n 4

Calls

TestActualLab.RpcgRPCSignalR
Sum8.87M calls/s1.11M calls/s5.34M calls/s
GetUser7.81M calls/s1.09M calls/s4.43M calls/s
SayHello5.58M calls/s1.03M calls/s2.23M calls/s

Streams

TestActualLab.RpcgRPCSignalR
Stream195.10M items/s38.75M items/s17.11M items/s
Stream10038.90M items/s20.63M items/s13.61M items/s
Stream10K320.04K items/s636.84K items/s387.00K items/s