perf: LocalTraceIdentifier
optimization
#7105
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 believe that it's safe to assume that after compilation artifact deployed bytecode will not decrease its size, and in most of the cases, artifact bytecode length exactly matches the deployed on-chain bytecode.
Thus, the new impl iterates over artifacts with bytecode length less than or equal in descending order. Artifact with exact same length as the on-chain code will always be checked first, and if it's diff_score < 0.1, we will exit early.
Not sure about 0.1 magic constant, but we are using it in
find_by_code
and it seems fineI've tested it on several codebase and haven't noticed any regression, some contracts even got identified more correctly