提示和技巧
- 在数组中使用
delete
,就是删除数组中的所有元素。 - 使用较短的类型和结构元素,短类型分组在一起进行排序。
SSTORE
操作可能合并成一个单一的SSTORE
,这可以降低gas的成本(sstore消耗5000或20000 gas,所以这是你必须优化的原因)。使用天gas的价格估算功能(优化器 enable)进行检查! - 让你的状态变量为
public
-编译器会自动创建 getters 。 - 如果你结束了输入或状态的检查条件,请尝试使用函数修饰符。
- 如果你的合约有一个
send
函数, 但你想使用内置的send函数,请使用address(contractVariable).send(amount)
。 - 用单条赋值语句初始化存储结构:
x = MyStruct({a: 1, b: 2});
如果存储结构具有紧密封装的属性,则用单独的赋值初始化它:x.a = 1; x.b = 2;
这样,优化器将更容易一次更新存储,从而使赋值的开销更小。