eos_vm
7% perf improvement by optimizing the expensive get_imported_functions_size
function.
#28
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.
This improves the performance of
eos-vm
by about 7% (reduces total time from 6.8% to 1.55%, however the time spent inexecute
is 75% of the total execution time forapi_part2_tests
).Running the perf tool, I noticed that
get_imported_functions_size
was one of the top cpu users. Most of the time is spent callingsize()
and doing an unnecessary check (that_index
, thei
in the loop, is less than size()).This streamlines the code.
pre optimization:
post optimization:
Also fixes an incorrect
std::forward
use, of no consequense since the forwarded data has no pointers and is moved anyways.