Client Library System Performance Monitoring Enhancements
The ROS 2 ecosystem has made significant leaps in performance over the last few years, supported by benchmarking tools like buildfarm_perf_tests and ros2-benchmark-container. These tools take care of profiling middleware and client library performance under various configurations. As of now, the recurring monitoring path in continuous integration (CI) is mostly rclcpp-centric, providing good regression visibility for C++ implementations. However, a current limitation of the ecosystem is that it lacks periodic performance monitoring for other heavily used client libraries like rclpy (Python) and rclrs (Rust). This leaves these libraries with weaker regression visibility, making it difficult to measure the performance impact of new topologies involving remote host subscriptions or track the performance of ROS actions and services reliably. This project focuses on vastly extending the suite of tests that run regularly in buildfarm_perf_tests by porting C++ benchmark instrumentation for use with the other client library implementations. This project thus aims to add high-signal, recurring CI coverage across rclcpp, rclpy, and rclrs with minimal CI cost overhead. Furthermore, to enhance the contribution, there will also be a focus on updating the performance test result graphs in CI to use modern observability tools. The final deliverable includes an updated web dashboard (built with Grafana) that tracks key compute metrics such as latency, CPU usage, and memory over time, providing the community with a complete, cross-language performance diagnostic ecosystem.
Project details
Technologies
Not listed in the archive