Set of latency benchmarks testing round trip time (RTT) between threads or processes via FIFO data structures.
To run the Java benchmarks execute the Gradle script in the base directory.
$ ./gradlew
$ ./gradlew runJavaBenchmarks
or just the Aeron benchmarks
$ ./gradlew runAeronJavaBenchmarks
To generate the benchmarks, execute the cppbuild
script from the base directory.
$ cppbuild/cppbuild
To run the benchmarks, execute the individual benchmarks.
$ cppbuild/Release/binaries/baseline
$ cppbuild/Release/binaries/aeronExclusiveIpcBenchmark
$ cppbuild/Release/binaries/aeronIpcBenchmark
$ cppbuild/Release/binaries/aeronExclusiveIpcNanomark
$ cppbuild/Release/binaries/aeronIpcNanomark
Note: On MacOS, it will be necessary to set DYLD_LIBRARY_PATH
for the Aeron
driver shared library. For example:
$ env DYLD_LIBRARY_PATH=cppbuild/Release/aeron-prefix/src/aeron-build/lib cppbuild/Release/binaries/aeronIpcBenchmark
The binaries with Benchmark in the name use Google Benchmark and only displays average times.
While the binaries with Nanomark in the name use Nanomark (included in the source) and displays full histograms.
To pick a specific tag for Aeron, specify --aeron-git-tag
parameter when invoking cppbuild
script.
For example:
cppbuild/cppbuild --aeron-git-tag="1.27.0"
will use Aeron 1.27.0
release.
Copyright 2015-2020 Real Logic Limited
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.