上万次循环,有没有好的建议

用ganache测试的,循环超过10000就卡了,提示VM Exception while processing transaction: out of gas,难道pure也会和gaslimit去比较?实际应用中,遇到大数组应该怎么办?有没有建议

function test(uint256 max) public pure returns(uint256){
uint256 i=0;
uint256 j=0;
for(i=0;i<max;i++){
j=i;
}
return j;
}

请先 登录 后评论

1 个回答

Tiny熊
  擅长:智能合约,以太坊

pure 和 view 函数同样有gaslimit 的限制, 只是 gas price 为 0

可以采用分步计算, 例如传入当前的 sum, 起始下标, 结束下标, 使用返回计算结果,再次计算。

请先 登录 后评论
  • 2 关注
  • 1 收藏,2887 浏览
  • lanjue 提出于 2021-07-08 15:53