Skip to content

Latest commit

 

History

History

benchmark

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

benchmark

Scripts for gathering and plotting benchmark data.

Test Procedure

  1. Set up the environment for rmw_iceoryx2 as per these instructions
  2. Clone performance_test
    git clone -b 2.3.0 [email protected]:ApexAI/performance_test.git ~/workspace/src/performance_test
  3. Patch performance_test to recognize rmw_iceoryx2_cxx as zero-copy-capable
    1. 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
  4. Build performance_test and rmw_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
  5. Install dependencies into python env
    cd ~/workspace/src/rmw_iceoryx2/benchmark/
    poetry install
  6. 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
  7. Generate plots
    cd ~/workspace/src/rmw_iceoryx2/benchmark
    poetry run python plot.py ./results