변수 시퀀스 조직.
Solidity는 상태 변수를 256비트 슬롯에 저장하고 2개(또는 그 이상)의 연속 변수 크기를 더하면 256 이하가 되면 이러한 변수는 동일한 슬롯에 저장됩니다. (바이트와 같은 유형은 최대 2개의 슬롯을 획득할 수 있음)
다음 계약을 사용하여 실험해 보겠습니다.
contract varSequence_1{
uint128 var1;
uint256 var2;
uint128 var3;
byte
function set(uint num1, uint128 num2) external {
var1= num2;
var2= num1;
var3= num2;
}
}
contract varSequence_2{
uint128 var1;
uint128 var3;
uint256 var2;
function set(uint num1, uint128 num2) external {
var1= num2;
var2= num1;
var3= num2;
}
}
두 계약은 정확히 동일하며 정의 변수의 순서만 변경됩니다.
결과:
배포 비용
배포에는 아주 작은 차이가 있습니다. 함수 호출을 확인해 보겠습니다.
함수 호출 비용
관찰
가변 시퀀스를 최적화한 varSequence_2는 varSequence_1보다 비용이 거의 25% 저렴했습니다.
Reference
이 문제에 관하여(변수 시퀀스 조직.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rushanksavant/variable-sequence-organization-8k1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)