为什么用图文讲解
Gas 优化涉及 EVM 内部多个机制,纯文字难以体现层次关系。一张存储槽布局图,胜过千字描述。许多 Binance 智能链上培训新工程师的团队,会把关键示意图打印张贴在工位旁。
本文按主题给出八张推荐图。
图一:EVM 指令成本柱状图
横轴是 opcode 名称,纵轴是 gas 价格。SSTORE 一柱独高,SLOAD、MSTORE 次之,栈操作几乎为零。一目了然地告诉你优化方向。
这张图建议放在团队 Wiki 首页。
图二:Storage Slot 布局
纵向 slot 列,标注每个变量名与类型。展示打包前后差异:打包前两个 uint128 占据两个 slot,打包后只用一个。
币安 智能链上多个 DeFi 协议正是凭此节省了大量 gas。
图三:函数选择器扫描时间
横轴是函数选择器顺序,纵轴是平均 gas 消耗。展示越靠后的函数需要更多 PUSH/EQ 操作,因此调用成本更高。
B安 上活跃的做市合约多数已优化函数排序。
图四:require 与 custom errors 对比
两列柱状图,对比两种错误处理方式的 gas。custom errors 略低,并附前端可解析的额外优势。
图五:calldata 与 memory 流向图
用箭头标示数据从外部调用、calldata、memory、storage 的流向。显示哪些拷贝是必要的,哪些可以省略。
必安 智能链上批量空投合约普遍使用这种结构。
图六:位运算压缩布尔状态
一张二进制位示意图,展示 256 个布尔标志被压缩进一个 uint256。配合简单的 OR/AND 操作示意,让概念瞬间清晰。
图七:unchecked 收益与风险象限
四象限图:横轴是 gas 收益,纵轴是溢出风险。落在右上角是高收益高风险,建议谨慎;右下角是低风险高收益,优先采用。
图八:升级与优化兼容性时间线
横向时间线,展示一次 gas 优化版本从开发、审计、测试、灰度到全量发布的全流程。让团队对节奏达成共识。许多 BN 智能链上协议都按此节奏发布优化。
如何自制更多图文
推荐使用 Excalidraw、tldraw、Figma 等工具。绘图时遵守三原则:信息分层、配文简短、术语统一。完成后让非技术成员阅读,确认能看懂。
与代码同步更新
图文资料容易过时。每次 gas 优化提交都顺手更新对应示意图,避免文档与代码脱节。这是顶级工程团队的共同习惯,也是 Gas 优化项目长期成功的关键。