Solidity Gas消耗
1.常量和变量读取GAS消耗
pragma solidity ^0.8.7;
// 21420 gas
contract demo1{address public constant admin = 0x6BaB7a0e1696D654adEdf4266B563c7CD656E212;
}
//23553 gas
contract demo2{address public admin = 0x6BaB7a0e1696D654adEdf4266B563c7CD656E212;
}
常量比变量少消耗2133 Gas费
在以太坊中读取变量不需要消耗gas费,但是当使用写入合约时读取数据就会消耗对应的Gas费
在合约中根据实际需求 尽量多定义常量而不是变量
2.if-else和三元运算符
pragma solidity ^0.8.7;contract demo{//传入参数:1000 21820 gasfunction example_1(uint _x) external pure returns (uint) {if (_x <=100){return 1;}else{return 2;}}//传入参数:1000 21861 gasfunction example_2(uint _x) external pure returns (uint){return _x <=100 ? 1 : 2;}
}
三元运算符的Gas消耗比if-else要更多,大概多了40个gas
Solidity Gas消耗相关推荐
- c++ 数组引用_在 Solidity中使用值数组以降低 gas 消耗
背景 我们Datona Labs在开发和测试Solidity数据访问合约(S-DAC:Smart-Data-Access-Contract)模板过程中,经常需要使用只有很小数值的小数组(数组元素个数少 ...
- Solidity优化 - 减少智能合约gas消耗
1. 首选数据类型 尽量使用 256 位的变量,例如 uint256 和 bytes32!乍一看,这似乎有点违反直觉,但是当你更仔细地考虑以太坊虚拟机(EVM)的运行方式时,这完全有意义.每个存储插槽 ...
- Solidity如何通过代码减少gas消耗
我们知道,在以太坊上的交易gas是有上限的,因此也是比较昂贵的,特别是针对一些复杂业务的处理,随着业务数据的增长,有可能会导致gas超高,甚至业务无法进行操作. 之前专门写过文章来描述如何减少gas的 ...
- 从 Demo 中学习 Solidity
从 Demo 中学习 Solidity [注解译文] 前 (全文参考) Solidity官方文档 以太坊白皮书_ZH 以太坊白皮书_EN 发现网上的资料太过琐碎, 惊奇的发现官方有详细的教程, 和例子 ...
- Solidity 基础(一)
Solidity 官网 github Solidity是一种静态类型的花括号(curly-braces)编程语言,旨在开发运行在以太坊(Ethereum)上的智能合约. Solidity正在迅速发展 ...
- Solidity语言编辑器REMIX指导大全
文章摘要 本文目标:本文翻译和实践Solidity语言编辑器REMIX官网帮助文档,但并不拘泥于逐字翻译,而时根据实践用中文语言讲透编辑器相关功能. 前置条件:了解以太坊ETH和Solidity语言. ...
- solidity开篇:区块链基础
solidity开篇:区块链基础 1.事务 2.交易 3.地址 4.区块 5.存储/内存/栈 2️⃣Hello World 1.例子代码 2.Hello World 例子分析 3️⃣ 合约代码中的三种 ...
- Basic of Solidity (solidity基础)
目录 1.first contract ·申明编译器版本 ·定义合约 ·合约构造函数 ·定义变量 ·定义函数 2.data type ·值类型(Value Types) ·引用类型(Reference ...
- Solidity语法大致总结
目录 一.数据类型 1.1.值类型 1.1.1.布尔 1.1.2.整数 1.1.3.定长浮点型 1.1.4.地址类型 1.1.5.合约类型 1.1.6.枚举类型 1.1.7.定长字节数组 1.1.8. ...
最新文章
- C语言面向过程与C++面向对象
- 使用JQuery Validate插件的报Cannot read property 'settings' of undefined错误的解决方法
- MFC DLL对话框调用
- extjs插件开发上传下载文件简单案例
- 清华硕士一针见血:这些才是机器学习必备的数学基础
- 用批处理替换文件中的内容
- validated 验证数组_SpringBoot整合表单验证注解@Validated,以及分组验证
- jFinal 2.2入门学习之一:搭建框架输出helloword
- GB/T14710|聊一聊医用电气设备的环境试验
- 1、【易混淆概念集】-前三章 1 工作绩效数据、信息、报告
- 普通人创业,不开实体店或者网上店铺,你能干啥?
- InnoDB: MySQL and InnoDB data dictionaries are out of sync + InnoDB: AUTOINC next value generation
- L1-030 一帮一(分数 15)
- biti_rainy的博客
- python中表示分支结构_下面Python关键字中,不用于表示分支结构的是()。
- 【Spark NLP】第 3 章:Apache Spark 上的 NLP
- Docker换源与镜像拉取
- VE和C-5A巨型飞机
- 回首过去,展望未来 (二)
- 英语语法总结11(并列句、省略)