Cache array length in for loops can save gas #186
Labels
bug
Something isn't working
duplicate
This issue or pull request already exists
G (Gas Optimization)
Handle
defsec
Vulnerability details
Impact
Reading array length at each iteration of the loop takes 6 gas (3 for mload and 3 to place memory_offset) in the stack.
Caching the array length in the stack saves around 3 gas per iteration.
Proof of Concept
Instances include:
https://github.com/code-423n4/2021-11-nested/blob/5d113967cdf7c9ee29802e1ecb176c656386fe9b/contracts/OperatorResolver.sol#L33
Tools Used
Code Review
Recommended Mitigation Steps
Here you could cache uint len = _moduleAddresses.length; and then change the stop criteria to use len instead _moduleAddresses.length to save gas (_moduleAddresses is on memory)
The text was updated successfully, but these errors were encountered: