启用optimizer (优化器)后, 优化器会尝试去优化代码,如简化复杂的表达式等,例如常量表达式可能直接优化出计算,以便减少代码大小和执行成本。

runs 很多人有误解,它不是指优化器运行多少次,而是指合约函数未来可能会调用多少次,例如某些锁仓合约只会调用一次,可以将runs值设置为1。 这样编译器会尽可能小的字节码, 减少部署成本(运行时可能会更费 gas)。
如果合约会大量运行,如 token 合约,就可以设为较大的数值,编译器会优化以便在运行时尽可能低 gas 消耗,不过部署时的字节码可能大一些。