solidityのmappingのvalueは小さくしたほうが安いのか検証
検証結果→そんなことない。むしろuint256が一番安い。
テストネットropstenで検証した。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
pragma solidity ^0.4.18; contract GasTest { mapping(address => uint256) map256; mapping(address => uint128) map128; mapping(address => uint64) map64; mapping(address => uint32) map32; mapping(address => uint16) map16; mapping(address => uint8) map8; function setMap256() public { map256[msg.sender]++; } function setMap128() public { map128[msg.sender]++; } function setMap64 () public { map64 [msg.sender]++; } function setMap32 () public { map32 [msg.sender]++; } function setMap16 () public { map16 [msg.sender]++; } function setMap8 () public { map8 [msg.sender]++; } } |
1 2 3 4 5 6 7 8 |
ガスコスト 関数 1回目 2回目 setMap256 41748 26748 setMap128 42062 27062 setMap64 42084 27084 setMap32 42128 27128 setMap16 42106 27106 setMap8 42018 27018 |