Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added rclcpp_performance package #636

Closed
wants to merge 6 commits into from

Conversation

ivanpauno
Copy link
Member

@ivanpauno ivanpauno commented Feb 21, 2019

This targets the first task of #634

This package adds three executables:

  1. Script for running some predefined tests, and then do the post-processing and plotting of all of them.
    Example usage: ros2 run rclcpp_performance performance_test -d output_dir [--skip]

    • output_dir: Directory where the logging files will be created.
    • -s|--skip: Don't run the tests again, only post-process and plot results.
  2. communication_performance: Which logs the timestamps.
    Example usage: ros2 run communication_performance [-d output_dir] [-p publish_period_ms] [-m M][-n N][-unique] [-intra]

    • output_dir: directory where the log files will be created (it should be created before running). Default: ./logs
    • -p publish_period_ms: Publish period in ms. Default: 100ms
    • -m M: Number of messages that will be published by each publisher before exiting. Default: 1000
    • -n N: Number of publisher/subscriber pairs created. Defualt: 100.
    • -unique: If option exists, the publish method taking an unique_ptr reference is used. If not, shared_ptr publish method is used.
    • -intra: Set intra process comm.
  3. posprocess_logging: Plot results.
    Example usage: ros2 run posprocess_logging -d output_dir
    Where output_dir contains the logged file.
    It plots three things:

    • The measured average publish period of each publisher.
    • The measured average publish period of each subscriber.
    • The measured latencys of each publish-subscriber pair.
      In all the cases, y axes is in ms and x axes is the result of one of the parts (one publisher, one subscriber, or one publisher-subscriber pair).

My results:
https://docs.google.com/document/d/1YRpWajYvXF_RA7nIH3Qe8RFUyVJwJoxVTSpQFJKN18U/edit?usp=sharing
Old results (841e206):
https://docs.google.com/document/d/11RBqAjcjQ4FBYkwfVtudOaHJSP_wz_TW9AGneo1_ePE/edit?usp=sharing

TODO:

  • It needs a general cleaning, and add some error handling.

@ivanpauno ivanpauno self-assigned this Feb 21, 2019
@ivanpauno ivanpauno added the in progress Actively being worked on (Kanban column) label Feb 21, 2019
@dirk-thomas
Copy link
Member

Would this new package be better places into a different / separate repository? I am not sure that tying it to the release of rcl* is necessary. Also how does this related to the already ongoing effort of performance benchmarking?

@ivanpauno
Copy link
Member Author

ivanpauno commented Feb 22, 2019

Would this new package be better places into a different / separate repository? I am not sure that tying it to the release of rcl* is necessary. Also how does this related to the already ongoing effort of performance benchmarking?

It can be moved to another place later. I've added now an script with the tests I made. This is a simple measuring of publish/subscription rate and of latency between publish and subscribe. It would be good to continue the analysis with a performance tool like gperftools.

Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com>
Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com>
…eads

Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com>
Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com>
Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com>
Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com>
@ivanpauno ivanpauno force-pushed the ivanpauno/rclcpp-performance branch from d0cdb4a to 40b84c5 Compare April 8, 2019 16:10
@ivanpauno
Copy link
Member Author

Closing as this is not up to date, and there have been better proposals for measuring performance:

@ivanpauno ivanpauno closed this Aug 1, 2019
@ivanpauno ivanpauno deleted the ivanpauno/rclcpp-performance branch August 1, 2019 16:31
nnmm pushed a commit to ApexAI/rclcpp that referenced this pull request Jul 9, 2022
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
DensoADAS pushed a commit to DensoADAS/rclcpp that referenced this pull request Aug 5, 2022
* Move zstd implementation files to new package

Signed-off-by: Emerson Knapp <eknapp@amazon.com>

* Fix rosbag2_tests builds

Signed-off-by: Emerson Knapp <eknapp@amazon.com>

* Plugin description needs to specify the new namespace/libraryg

Signed-off-by: Emerson Knapp <eknapp@amazon.com>

* Add zstd to rosbag2 metapackage

Signed-off-by: Emerson Knapp <eknapp@amazon.com>

* Remove zstd dependency from rosbag2_compression

Signed-off-by: Emerson Knapp <eknapp@amazon.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in progress Actively being worked on (Kanban column)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants