Benchmark Suite

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

What's in the Suite

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

Module
Component
Description

Time API

Measures overhead of X Platform'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 X Platform'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 X Platform release (starting with 3.16.14). The benchmark version matches the X Platform 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 3.16.34 is named:

Important: Only Linux distributions include X Platform 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 3.16.34 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

  • Module Documentation: See the Modules section for detailed information on each benchmark module, including program classes, parameters, and interpreting results

  • Canonical Benchmark: Learn about the official end-to-end benchmark

  • Build from Source: See the nvx-perf repository for build instructions

Last updated