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

Add benchmarks for Subscriber and Publisher #101

Draft
wants to merge 9 commits into
base: unit_tests
Choose a base branch
from

Conversation

AlexKaravaev
Copy link
Contributor

@AlexKaravaev AlexKaravaev commented Apr 11, 2022

Hi everyone!

It's a PR for #33, however, I don't really know which of the parts of the library should be benchmarked at first, currently I only have written tests for simple publishing and subscribing for simple string and creating of publisher and subscriber instances.

Ideas that I have about what can be benchmarked:

  • Publishing and subscribing with more heavy payload(E.g progressing increase of message size)
  • Message creation

Please feel free to add some ideas

@jhdcs
Copy link
Collaborator

jhdcs commented Apr 25, 2022

Would benchmarking the creation and sending/receiving of messages with allocated portions (such as Strings) vs trivially-copyable portions (such as i32) be of use?

Another thing that might be good to benchmark are all the various ROS 2 object creation functions: creating nodes, creating contexts, creating publishers, creating subscribers, etc. More for catching performance regressions than anything else. While these functions mostly involve external ROS 2 code, it would give us insight into the health of the external system.

@nnmm
Copy link
Contributor

nnmm commented Sep 28, 2022

@AlexKaravaev Want to revive this to gather some numbers for sending messages in the same process vs between processes?

We could construct a message, and then time the duration for

  • sending the message
  • receiving the message on the other end, and
  • sending back a very small response (e.g. std_msgs/msg/Empty)

for different message types. See also https://gitlab.com/ApexAI/performance_test

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants