当前位置:首页 > 企业新闻
燃气节能模式您可以在代码中使用以下模式来增加燃气消耗-6号彩票平台
时间:2020-11-03 来源:6号彩票平台 浏览量 34449 次
本文摘要:contractsafeaddition{functionsafeADd(uinta,uintb)publicpurereturns(uint){returnsafemath}}contractsafeaddition{functionsafeADd(uinta,uintb)publicpurereturns(uint){uintc=ab;

在区块链的以太博物馆,天然气是对持续执行的奖励,用于补偿矿工获得智能合同计算能力所需的计算资源。网络的使用在逐渐减少,目前的燃气费用每天在几百万美元左右。随着生态系统的大发展,气体优化的价值将迅速增加。

以下将解释一些稀有气体优化模式。燃气节能模式您可以在代码中使用以下模式来增加燃气消耗。短循环当运算符用于| |或时,短循环是一种策略。该模型的工作原理是先对低成本算子进行排序,当第一个算子计算为真时,将低成本算子短路。

//f (x)是低成本//g (y)是意料之外//排序应该是这样的f (x) | | g (y) f (x) g (y)不必要的库一般只是为了几个目的才引入的,也就是说它们可能包括如果你能安全有效地构建智能契约中从库中引入的函数,那么最糟糕的做法就是这么做。“进口”。

/SafeMath . sol ' as SafeMath;contract safe addition { function safe ADd(uint a,uint b)public pure returns(uint){ return safemath . ADd(a,b);} } contract safe addition { function safe ADd(uint a,uint b)public pure returns(uint){ uint c=a b;要求(c=a,“加法溢出”);返回c;显式功能可见性显式功能可见性通常可以在智能合同安全和天然气优化方面获得优势。例如,显式标记一个外部函数并不会强制函数参数的存储方向为calldata,这样可以在每次函数继续执行时节省气体。在Solidity中精确的数据类型,有些数据类型比其他的便宜。

函数

最重要的是要知道可以使用的最有效的类型。下面是一些关于数据类型的规则。请尝试用uint类型替换字符串类型。

uint256型比uint8型储存的气体少。字节[]上方应使用类型字节。如果字节长度可以接受,请为字节1到字节32请求一个更大的数字。

用于

用于字节32的类型比用于字符串的类型便宜。气体消耗模式以下模式不会降低气体成本,并且不应被阻止在中使用。死代码违宪代码是有一天会运行的代码,因为它的计算是基于一个总是返回false的条件。

函数DeadCode(uint x)public pure { if(x1){ if(x2){ return x;}}}不完全谓词某些条件的结果需要继续才能被告知,所以不必计算。opaquepredice(uint x)public pure { if(x1){ if(x0){ return x;由于SLOAD和SSTORE操作码便宜,循环中昂贵的操作管理存储中的变量比管理内存中的变量便宜得多。因此,它不应用于在循环中存储变量。uint num=0;函数ExpensiveLoop(uint x)public { for(uint I=0;ix .I){ num=1;}}问题的解决方法是创建一个表示全局变量的临时变量,在循环完成后将临时变量的值重新分配给全局变量。

uint num=0;函数LesExpresseLoop(ui nt x)public { ui nt temp=num;for(uint I=0;ix .I){ temp=1;} num=temp}循环的常量结果如果循环的结果是一个可以在编译器中推断出的常量,就不应该用于它。函数constantOutcome()返回public pure(uint){ uint num=0;for(uint I=0;i100I){ num=1;}返回num}回路融合有时在智能合同中,您可能会发现两个参数相同的回路。当循环参数完全相同时,没有理由将它们用于单独的循环。loopFusion函数(uint x,uint y)public pure returns(uint){ for(uint I=0;i100I){ x=1;} for(uint I=0;i100I){ y=1;}返回x y;}循环重复计算。

如果循环中的表达式在每次递归中产生完全相同的结果,则可以将其移入循环中。当表达式中使用的变量存储在内存中时,这一点尤其重要。uint a=4;uint b=5;function repeatedcalculations(uint x)public returns(uint){ uint sum=0;for(uint I=0;I=x;I){ sum=sum a * b;}}与单侧循环结果的比较。

如果在循环的每个递归中继续进行比较,但每次结果都完全相同,则不应将其从循环中移除。


本文关键词:气体,返回,函数,用于,客户端下载

本文来源:6号彩票官网-www.alphafuelx720.com

版权所有重庆市6号彩票平台|客户端下载有限公司 渝ICP备51649246号-6

公司地址: 重庆市重庆市重庆区远央大楼3959号 联系电话:034-32476663

Copyright © 2018 Corporation,All Rights Reserved.

熊猫生活志熊猫生活志微信公众号
成都鑫华成都鑫华微信公众号