DYN-4230 Callsite ExecWithRISlowPath optimizations to improve Cross Product replication performance#11921
Merged
sm6srw merged 13 commits intoDynamoDS:masterfrom Apr 13, 2022
Merged
Conversation
Contributor
Author
|
In a the specific test graph method execution time dropped from 2.3s to 1.3s and temporary memory allocation dropped by 1 gig. |
Contributor
|
@saintentropy Hey, can you merge master and make this PR current when you have a moment? |
Contributor
|
@saintentropy Looks good. I have not seen any regressions. I have seen execution times drop up to 50% but I have not seen huge drops in use of temporary memory. But the heap is in much better shape after this changes. |
Contributor
|
I will wait with approving/merging these changes until we are done with our releases. |
aparajit-pratap
approved these changes
Apr 11, 2022
sm6srw
approved these changes
Apr 11, 2022
Contributor
|
Tests are passing. I will merge this now. |
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.
Purpose
https://jira.autodesk.com/browse/DYN-4230
This PR is follow up to some previous optimizations within the Callsite class, specifically to the ExecWithZeroRI method related to Cross Product replication. A majority of these changes reduce temporary object allocations and associated GC time. The larger the data set the larger the impact of the optimization. This task covers:
AreParametersHomogeneousTypesmethod check as we can more efficiently depend on the FunctionEndPoint count. If the count is equal to 1 then we can directly resolve thefinalFunctionEndPointand cache it. The optimization was already in place but based on theAreParametersHomogeneousTypeswhich appears to be extraneous.FunctionEndPointlist variable name to plural for clarityDSArraydirectly to access parameters vs copying items to temporary arrays.todo => validate test
Declarations
Check these if you believe they are true
*.resxfilesReviewers
FYIs
@jasonstratton @QilongTang