Performance optimization of STL loading #1251
Closed
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.
I was extremely unhappy about the loading speed of compas_robots which loads remote meshes (stl usually), and started digging into the causes. I found and fixed two issues:
So, I switched the implementation to rely on .NET class library for the downloading :)
What type of change is this?
I ran some tests, downloading 4 files in a loop, 5 times each, and the averaging the times, the results of the changes are as follows.
This is the baseline running on cpython:
And the same stuff running on IronPython using the previous (urllib2) implementation and the new implementation based on .net:
Bottom line: although it's still not as fast as cpython, it's gotten at around 20% faster.
Checklist
Put an
x
in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.CHANGELOG.md
file in theUnreleased
section under the most fitting heading (e.g.Added
,Changed
,Removed
).invoke test
).invoke lint
).compas.datastructures.Mesh
.