Skip to content

kassane/tigerbeetle-clients-benchmarks

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TigerBeetle Client benchmark

This benchmark compares the throughput and latency of the TigerBeetle client implemented in Zig with other programming language implementations using the tb_client API to show how the natural runtime overhead of FFI calls was minimized.

The code consists of submitting one million transfers to the TigerBeetle cluster. Since the focus is benchmarking only the client side, all transfers are sent with an invalid ID to ensure that they will be immediately rejected. It's enough work to stress the client without much server-side measurement noise.

Prerequisites

In order to build and run all clients:

  • Go > 1.17
  • Dotnet SDK 6.0
  • Java JDK 11+ and Maven 3.1+

Usage

1. Install zig

./scripts/install.sh

2. Start a local TigerBeetle cluster

./scripts/run_tigerbeetle.sh

3. Run the benchmark for each language

echo Go
(cd go && ./run.sh)

echo Java
(cd java && ./run.sh)

echo Dotnet
(cd dotnet && ./run.sh)

echo C
(cd c && ./run.sh)

echo Zig
(cd zig && ./run.sh)

Languages

  • D 54.3%
  • Zig 18.5%
  • C 9.6%
  • Java 4.6%
  • C# 4.0%
  • Go 3.8%
  • Other 5.2%