Improve yarpmotorgui open speed#2911
Open
S-Dafarra wants to merge 3 commits intorobotology:masterfrom
Open
Conversation
This is to avoid expensive checks with the nameserver for every part we open
The parts are still parsed in order, but while waiting for one part, the others can configure
|
Thanks for opening this pull request! The maintainers of this repository would appreciate it if you would update the release notes by adding a file in |
Contributor
Author
|
In agreement with @randaz81, I will try to run one test also on Windows and eventually Mac to make sure that the new multithreaded behavior is not causing issues. |
71900d2 to
ead1caf
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
During the XPrize finals, we noticed that the
yarpmotorguican take some time to start.I check the code and I found that there are some checks on whether there are other
yarpmotoguiopened. See for exampleyarp/src/yarpmotorgui/partitem.cpp
Line 86 in 76fe34d
My guess is that this call can be costly in case of a delayed network.
Moreover, there was a useless call to get each joint position PID:
yarp/src/yarpmotorgui/partitem.cpp
Lines 230 to 232 in 76fe34d
Finally, there are some delays to make sure that the reading of the joint values is valid:
yarp/src/yarpmotorgui/partitem.cpp
Lines 184 to 194 in 76fe34d
Hence, with this PR:
std::asyncI have measured the initialization time before and after when opening
yarpmotorguiwith the robot on Gazebo in my PC (so all local communication), and the improvement was more than half a second.