Skip to content

Performance regression in EventsExecutor on jazzy #2799

Closed
@jplapp

Description

@jplapp

Operating System:

ubuntu 22

ROS version or commit hash:

jazzy

RMW implementation (if applicable):

rmw_cyclonedds_cpp and rmw_fastdds_cpp

RMW Configuration (if applicable):

No response

Client library (if applicable):

rclcpp

'ros2 doctor --report' output

No response

Steps to reproduce issue

  1. Run any action server with EventsExecutor, e.g. from ros2 demos , compile with EventsExecutor specified rclcpp_components_register_node(action_tutorials PLUGIN "action_tutorials_cpp::FibonacciActionServer" EXECUTABLE fibonacci_action_server EXECUTOR EventsExecutor)
  2. ros2 run action_tutorials_cpp fibonacci_action_server
  3. Check CPU load

Expected behavior

EventsExecutor has similar or less CPU load than SingleThreadedExecutor when running an idle action server

Running with SingleThreadedExecutor the CPU load is 0% (as nothing is happening)

Actual behavior

CPU load is significantly more than 0, e.g. 50%:

Image

Additional information

When I revert #2674 , it behaves as expected

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions