ros / dynamic_reconfigure

BSD 3-Clause "New" or "Revised" License
48 stars 111 forks source link

Remove obsolete load_manifest #165

Open heuristicus opened 3 years ago

heuristicus commented 3 years ago

I've been doing some profiling on node startup time, and have noticed that loading the manifest is one of the time consuming steps, taking about 0.4-0.5 seconds when a node uses dynamic reconfigure.

A tiny python script to show this:

import cProfile
pr = cProfile.Profile()
pr.enable()

import dynamic_reconfigure.client

pr.disable()
pr.dump_stats("dynamic_reconfigure.stats")

After running the file the stats can be viewed with snakeviz. Below is the resulting visualisation:

Screenshot_2020-11-04 dynamic_reconfigure

I believe that loading the manifest is no longer necessary for catkin packages. I saw this same time consumption in the tf2_ros package, and in recent versions (0.6.6), the manifest loading has been removed as per https://github.com/ros/geometry2/pull/404.

These same changes can probably be added to the noetic branch as well.

furushchev commented 1 year ago

Is there any update on this? roslib.load_manifest do nothing now in noetic but consumes CPU load and takes much time to import this library. So it's reasonable deleting the part.

Screenshot 2023-04-10 at 2 03 47 PM

CC to maintainer: @mjcarroll

furushchev commented 1 year ago

Kindly ping to maintainer @mjcarroll