ros/ros — pull request #25 by tkruse (2013-07-23 21:08:15+00:00)
Title: Gendeps cache fix

This bug request follows a report of slow performanceof gendeps from Anthony Mallet at LAAS, for building ROS packages over NFS.

It seems to me the gendeps script is not using the rospack instance caching as intended by rospack and gentools.py.

To make sure this improves performance, I intentionally made my ROS_PACKAGE_PATH include large non-ROS subtrees to simulate lenghty file IO, such as

export ROS_PACKAGE_PATH:$ROS_PACKAGE_PATH:/home/kruset

Then for testing, I used this call in a groovy underlay from source:

$ time install/lib/roslib/gendeps --md5 src/nav_msgs/msg/OccupancyGrid.msg
3381f2d731d4076ec5c71b0759edbe4e
real 0m10.908s
user 0m6.404s
sys 0m4.400s

(after calling several times to initialize rospack cache)
After applying the path, i get results such as this:

real 0m2.960s
user 0m1.888s
sys 0m1.032s

MD5 calculationthen is still slow, will investigate further.

If possible, please apply to fuerte, groovy and hydro sources (even if fuerte won't be released with patch).

Note that with all the duplicate code of md5 calculation between roslib and genpy/genmsg, I cannot tell whether the latter suffers the same performance hits. If this PR is considered valid, I recommend checking in genpy/genmsg as well.