Solidity

我如何測試這個可靠性合約(比如說)5000 次呼叫 set 函式(.sol 或 .js)?

  • March 31, 2022
// SPDX-License-Identifier: MIT
pragma solidity >=0.5.16;

contract storeData {

   uint256 internal index = 0;

   struct IslandFcst {
       uint islandId;
       uint forecastDate;
       uint forecastValue;
   }
   mapping(uint256 => IslandFcst) islandfcst;

   function setData(uint _islandId, uint _forecastDate, uint                    _forecastValue)
   public {

       islandfcst[index] = IslandFcst(_islandId, _forecastDate, _forecastValue);

       index++;

   }

   function getData(uint256 _index) public view returns(uint, uint, uint)

   {
       return (
                   islandfcst[_index].islandId,
                   islandfcst[_index].forecastDate,
                   islandfcst[_index].forecastValue
              );
   }
}

您應該感興趣的唯一性能指標是gas cost

測試你的契約的速度真的沒有意義。您收到結果所需的時間主要取決於所用節點的容量、網路延遲和數據量。

如果您使用自己的節點(99% 的開發人員不使用 - 他們使用 Infura 或 Alchemy 等服務提供商),那麼測試其性能可能會有點*意義。*但是,並非如此。測試服務提供商節點的性能是沒有意義的。

無論如何,從區塊鏈讀取數據都很慢(為什麼本地讀取這麼慢?)。

引用自:https://ethereum.stackexchange.com/questions/125111