Benchmark Suite

The Rumi Performance Benchmark Suite is a collection of benchmarking tools that measure the performance of individual Rumi runtime components. These tools serve both as performance measurement utilities and as sample code demonstrating Rumi best practices.

What's in the Suite

The benchmark suite contains 7 modules, each focusing on a specific Rumi component:

Module
Component
Description

Time API

Measures overhead of Rumi's time API

Encoding (ADM)

Message serialization/deserialization performance

Link

Cluster replication link throughput and latency

Messaging (SMA)

Pub/sub messaging layer performance

Persistence

Message and data persistence performance

Store (ODS)

Object store operation performance

Engine (AEP)

End-to-end canonical benchmark

Relationship to Canonical Benchmark

The AEP Module contains the Canonical Benchmark - the official end-to-end performance test used to measure Rumi's published performance metrics. While the canonical benchmark measures the complete Receive-Process-Send flow, the other modules isolate and test individual components.

Source Repository

The benchmark suite source code is available at:

Releases

Versioning

A benchmark suite release is published for each Rumi release. The benchmark version matches the Rumi version it tests.

Distribution Naming

Distributions are named as follows:

Linux and macOS:

Windows:

Valid architectures (arch):

  • linux-x86-64 - Linux (recommended for performance testing)

  • osx-x86-64 - macOS (development only)

  • win-x86-64 - Windows (development only)

Example: The Linux distribution for version 4.0.4 is named:

Important: Only Linux distributions include Rumi native libraries required for zero-garbage operation. Windows and macOS distributions can be used for development, but Linux is required for full performance optimization.

Download

Download distributions from the Neeve artifact repository:

Linux:

macOS:

Windows:

Replace 4.0.4 with your desired version.

Running Benchmarks

1. Extract Distribution

Linux/macOS:

Windows:

This creates:

2. Run a Benchmark

With Java 8:

Linux/macOS:

Windows:

With Java 11 or later:

Linux/macOS:

Windows:

Example - Serialization Benchmark

With Java 8:

With Java 11+:

Next Steps

Last updated