opcode 표를 보니
memory 변수를 읽을 떄는 376, storage 변수를 읽을 떄는 835이던데
만약 storage 배열값을 반복해서 비교 계산해야 될 때
memory에 storage배열값을 따로 저장하고 저장한 메모리의 배열값을 반복해서 읽어와 계산하는게 저렴한거겠죠?
address[] users;
function test() public{
for(uint256 i = 0; i < .users.length; i = i + 1){
if(users2[i] == msg.sender) {
return;
}
}
}
function test2() public{
address[] users2 = users;
for(uint256 i = 0; i < .users2.length; i = i + 1){
if(users2[i] == msg.sender) {
return;
}
}
}
test2 함수가 더 연산 비용이 적게 드나요?