-
Notifications
You must be signed in to change notification settings - Fork 90
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 ContactResultMap class to reduce heap allocations for multiple contact requests #869
Add ContactResultMap class to reduce heap allocations for multiple contact requests #869
Conversation
d25e6fc
to
3e2a4f6
Compare
618fcec
to
35e251b
Compare
@marip8 If you have time it would not hurt to have another set of eyes on this PR before it gets merged. |
35e251b
to
e4c885f
Compare
Just finished adding the unit tests |
Improvements results. This change has a significant impact on Peak Memory, Heap Allocation and Performance. Highlights
TrajOpt
TrajOpt Ifopt:
|
Improvements results including the last two commits Highlights
TrajOpt
TrajOpt Ifopt:
|
tesseract_collision/core/include/tesseract_collision/core/types.h
Outdated
Show resolved
Hide resolved
As a sanity check to make sure it was not an issue passing an object that contains a thread_local by reference into multiple threads is an issue. It was that it is not an issue and even though it was created in a different thread and passed by reference to two threads it still gets its own copy.
Results:
|
Initial testing shows this can have a significant performance bump. See results bellow where the last two columns show % reduction in Time, CPU Time. In case with large number of contacts the reduction is around 99%.