Scripts for gathering and plotting benchmark data.
- Set up the environment for
rmw_iceoryx2
as per these instructions - Clone
performance_test
git clone -b 2.3.0 [email protected]:ApexAI/performance_test.git ~/workspace/src/performance_test
- Patch
performance_test
to recognizermw_iceoryx2_cxx
as zero-copy-capable- NOTE: This shall soon be merged upstream to
performance_test
for convenience
cd ~/workspace/src/performance_test git apply ~/workspace/src/rmw_iceoryx2/benchmark/patch/recognize-rmw-iceoryx2-cxx-as-zero-copy.patch
- NOTE: This shall soon be merged upstream to
- Build
performance_test
andrmw_iceoryx2_cxx
cd ~/workspace/ export RMW_IMPLEMENTATION=rmw_iceoryx2_cxx colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release --build-base "build_perf_$RMW_IMPLEMENTATION" --install-base "install_perf_$RMW_IMPLEMENTATION" --packages-up-to "$RMW_IMPLEMENTATION" performance_test
- Install dependencies into python env
cd ~/workspace/src/rmw_iceoryx2/benchmark/ poetry install
- Collect data
export RMW_IMPLEMENTATION=rmw_iceoryx2_cxx export ROS_DISABLE_LOANED_MESSAGES=0 # ensures loaning is enabled source ~/workspace/install_perf_$RMW_IMPLEMENTATION/setup.zsh cd ~/workspace/src/rmw_iceoryx2/benchmark poetry run python benchmark.py $RMW_IMPLEMENTATION ~/workspace/install_perf_$RMW_IMPLEMENTATION --zero-copy
- Generate plots
cd ~/workspace/src/rmw_iceoryx2/benchmark poetry run python plot.py ./results