aptos-labs / aptos-core

Aptos is a layer 1 blockchain built to support the widespread use of blockchain through better technology and user experience.
https://aptosfoundation.org
Other
5.85k stars 3.54k forks source link

Optimize APT FA transactions - gas charging and transfering #13194

Open igor-aptos opened 2 weeks ago

igor-aptos commented 2 weeks ago

Description

Type of Change

Which Components or Systems Does This Change Impact?

How Has This Been Tested?

Key Areas to Review

Checklist

trunk-io[bot] commented 2 weeks ago
⏱️ 6h 37m total CI duration on this PR | Job | Cumulative Duration | Recent Runs | |---|---|---| | [rust-targeted-unit-tests](https://github.com/aptos-labs/aptos-core/actions/runs/9036090141/job/24832242301) | 2h 22m | [πŸŸ₯](https://github.com/aptos-labs/aptos-core/actions/runs/8942935870/job/24566590681) [πŸŸ₯](https://github.com/aptos-labs/aptos-core/actions/runs/8987346282/job/24685592645) [πŸŸ₯](https://github.com/aptos-labs/aptos-core/actions/runs/8993350742/job/24704998591) [πŸŸ₯](https://github.com/aptos-labs/aptos-core/actions/runs/9020861846/job/24786948891) [πŸŸ₯](https://github.com/aptos-labs/aptos-core/actions/runs/9036090141/job/24832242301)  | | [rust-move-unit-coverage](https://github.com/aptos-labs/aptos-core/actions/runs/9036090146/job/24832232033) | 1h 44m | [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8942935874/job/24566582545) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8987346292/job/24685577101) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8993350777/job/24704991655) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9020861862/job/24786934804) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9036090146/job/24832232033)  | | [rust-move-tests](https://github.com/aptos-labs/aptos-core/actions/runs/9036090136/job/24832231746) | 1h 8m | [πŸŸ₯](https://github.com/aptos-labs/aptos-core/actions/runs/8942935866/job/24566582364) [πŸŸ₯](https://github.com/aptos-labs/aptos-core/actions/runs/8987346285/job/24685577336) [πŸŸ₯](https://github.com/aptos-labs/aptos-core/actions/runs/8993350759/job/24704991661) [πŸŸ₯](https://github.com/aptos-labs/aptos-core/actions/runs/9020861868/job/24786934598) [πŸŸ₯](https://github.com/aptos-labs/aptos-core/actions/runs/9036090136/job/24832231746)  | | [rust-lints](https://github.com/aptos-labs/aptos-core/actions/runs/9036090141/job/24832241883) | 39m | [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8942935870/job/24566590477) [πŸŸ₯](https://github.com/aptos-labs/aptos-core/actions/runs/8987346282/job/24685591788) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8993350742/job/24704998303) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9020861846/job/24786947214) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9036090141/job/24832241883)  | | [run-tests-main-branch](https://github.com/aptos-labs/aptos-core/actions/runs/9129678289/job/25104816218) | 25m | [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8987345941/job/24685600644) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8993350462/job/24705003218) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9020861701/job/24786957010) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9036089994/job/24832247125) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9129678289/job/25104816218) (+1 more) | | [general-lints](https://github.com/aptos-labs/aptos-core/actions/runs/9036090141/job/24832242100) | 8m | [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8942935870/job/24566590315) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8987346282/job/24685591409) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8993350742/job/24704998467) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9020861846/job/24786947581) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9036090141/job/24832242100)  | | [check-dynamic-deps](https://github.com/aptos-labs/aptos-core/actions/runs/9036090135/job/24832230740) | 6m | [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8942935882/job/24566581829) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8987346293/job/24685575785) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8993350768/job/24704990992) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9020861852/job/24786933498) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9036090135/job/24832230740)  | | [semgrep/ci](https://github.com/aptos-labs/aptos-core/actions/runs/9036090145/job/24832230918) | 2m | [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8942935876/job/24566581801) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8987346290/job/24685575632) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8993350765/job/24704991016) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9020861850/job/24786933606) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9036090145/job/24832230918)  | | [file_change_determinator](https://github.com/aptos-labs/aptos-core/actions/runs/9036089994/job/24832238231) | 58s | [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8942935658/job/24566587535) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8987345941/job/24685584834) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8993350462/job/24704995886) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9020861701/job/24786943749) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9036089994/job/24832238231)  | | [file_change_determinator](https://github.com/aptos-labs/aptos-core/actions/runs/9036090141/job/24832231756) | 47s | [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8942935870/job/24566582380) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8987346282/job/24685576806) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8993350742/job/24704991446) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9020861846/job/24786934838) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9036090141/job/24832231756)  | | [permission-check](https://github.com/aptos-labs/aptos-core/actions/runs/9036089993/job/24832230504) | 17s | [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8942935659/job/24566581046) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8987345966/job/24685574639) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8993350467/job/24704990206) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9020861700/job/24786932871) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9036089993/job/24832230504)  | | [permission-check](https://github.com/aptos-labs/aptos-core/actions/runs/9036090001/job/24832230468) | 16s | [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8942935661/job/24566581031) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8987345961/job/24685574674) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8993350477/job/24704990243) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9020861703/job/24786932834) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9036090001/job/24832230468)  | | [permission-check](https://github.com/aptos-labs/aptos-core/actions/runs/9036089994/job/24832230807) | 15s | [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8942935658/job/24566581271) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8987345941/job/24685574953) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8993350462/job/24704990405) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9020861701/job/24786933148) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9036089994/job/24832230807)  | | [permission-check](https://github.com/aptos-labs/aptos-core/actions/runs/9036089996/job/24832230854) | 14s | [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8942935662/job/24566581263) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8987345940/job/24685575046) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/8993350470/job/24704990400) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9020861707/job/24786933348) [🟩](https://github.com/aptos-labs/aptos-core/actions/runs/9036089996/job/24832230854)  |

🚨 2 jobs on the last run were significantly faster/slower than expected

Job Duration vs 7d avg Delta
rust-targeted-unit-tests 34m 19m +79%
rust-lints 10m 9m +21%

settings β‹… feedback β‹… docs β‹… learn more about trunk.io

codecov[bot] commented 2 weeks ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 57.5%. Comparing base (55a02a2) to head (7f65d93). Report is 6 commits behind head on main.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #13194 +/- ## ========================================= - Coverage 57.5% 57.5% -0.1% ========================================= Files 832 833 +1 Lines 198564 198662 +98 ========================================= + Hits 114269 114307 +38 - Misses 84295 84355 +60 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

igor-aptos commented 1 week ago

chatted with @movekevin offline - will measure what inline brings, but if it has measurable perf improvement, there are no concerns of using inlining for these short functions.

igor-aptos commented 1 day ago

This is fully ready for review - can I get a second review/approval - @movekevin, @davidw, @runtian-zhou ?