提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 7. Gas 机制与优化
- 7.1 Gas 基础原理
- 7.1.1 为什么需要 Gas?
- 7.1.2 Gas 计算规则
- 7.2 EIP-1559 详解
- 7.2.1 动态 BaseFee 机制
- 7.2.2 Priority Fee(小费)策略
- 7.3 Gas 优化技巧
- 7.3.1 存储优化技巧
- 7.3.2 循环优化
- 7.3.3 短路求值
- 7.3.4 事件 vs 存储
- 7.3.5 使用 calldata 替代 memory
- 7.4 Gas 优化工具
- 7.4.1 Gas Reporter
- 7.4.2 Solidity Optimizer
- 7.4.3 Gas Profiler
- 7.5 实际案例: Uniswap V3 的 Gas 优化
7. Gas 机制与优化
7.1 Gas 基础原理
7.1.1 为什么需要 Gas?
场景对比:
7.1.2 Gas 计算规则
操作码(Opcode) 的 Gas 成本:
存储操作是最昂贵的:
7.2 EIP-1559 详解
7.2.1 动态 BaseFee 机制
BaseFee 计算公式:
历史 BaseFee 趋势:
7.2.2 Priority Fee(小费)策略
7.3 Gas 优化技巧
7.3.1 存储优化技巧
1: 打包存储变量
技巧 2: 使用 immutable 和 constant
技巧 3: 批量操作
7.3.2 循环优化
7.3.3 短路求值
7.3.4 事件 vs 存储
7.3.5 使用 calldata 替代 memory
7.4 Gas 优化工具
7.4.1 Gas Reporter
输出示例:
7.4.2 Solidity Optimizer
7.4.3 Gas Profiler
7.5 实际案例: Uniswap V3 的 Gas 优化
Uniswap V3 采用了多种 Gas 优化技术: