Closed molly-ting closed 9 months ago
Is this still relevant? If so, what is blocking it? Is there anything you can do to help move it forward?
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
@moodysalem @hensha256 @NoahZinsmeister Can you help take a look at this pull request? I think the pull request should be merged, since it can save gases while keeping the original functionality.
Initializing variables before the loop instead of inside the loop can also save gas. In the example below, function test4 consumes 553 units less gas than function test3 when the length of arr is 100.
function test3(uint256[] memory arr) public {
for(uint256 i = 0; i < arr.length; i++) {
uint256 a = arr[i];
}
}
function test4(uint256[] memory arr) public {
uint256 a;
for(uint256 i = 0; i < arr.length; i++) {
a = arr[i];
}
}
I committed some changes to move these variable definitions out of the loop. Can someone take a look?
Is this still relevant? If so, what is blocking it? Is there anything you can do to help move it forward?
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
Anyway out or solution
The procedure shows it has been renew and remove from stale
Is this still relevant? If so, what is blocking it? Is there anything you can do to help move it forward?
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
Moving loop invariant codes out from loop can save gas. In the following demo, it can save 265 units of gas when the length of
arr
is 100.