The tests below are performed on the Apple M4 Max
Performs 4 scenarios:
- 1 process spawns 'pong'-process locally and sends 3M messages
- N processes spawn 'pong'-process locally and send 1M messages (N = number of CPU)
- 1 process spawns 'pong'-process on a remote node and sends 3M messages
- N processes spawn 'pong'-process on a remote node and send 1M messages (N = number of CPU)
Performs the following scenario:
- Takes node information that includes memory usage value.
- Starts 1M processes
- Takes node information 3 times with 1s intervals to make sure the GC has freed unused memory
Demonstrates event delivery performace by publishing 1 event from 1 producer to 1,000,000 subscribers distributed across 10 nodes.
Key optimization: Instead of 1,000,000 network messages (one per subscriber), only 10 network messages are sent (one per consumer node). Each node locally distributes to its 100K subscribers.
Results:
- Total subscribers: 1,000,000
- Producer nodes: 1
- Consumer nodes: 10
- Time to deliver all: 342ms
- Network messages sent: 10
- Delivery rate: 2.9M msg/sec
Run with go run .
Hardware: Apple M4 Max
These benchmarks compare EDF, EDF (+cache), Protobuf, and Gob serialization performance across common data types.
- EDF and Gob rely on runtime reflection, which dynamically inspects and serializes data structures at runtime
- Protobuf uses code generation, producing static type-safe marshalling and unmarshalling logic.
Format: time ns/op, memory B/op, allocations/op
Run with go test -bench=. -benchmem
Hardware: Apple M4 Max


