在以太坊中,每個操作都會産生一定的gas成本。一些常見的成本包括:
了解常見的成本非常重要,因爲許多gas優化策略即是用較便宜的操作代替較昂貴的操作。
通過Remix,你可以輕鬆地了解我們的合約操作所消耗的gas。
靜態分析:進入Remix中的Analysis
選項卡(顯微鏡圖標)。此工具將提供代碼中的潛在問題和優化機會。
部署和運行:部署合約後(在第1課中已經執行),每次運行合約都將顯示一個gas估值。當調用函數時,使用的gas將會在右下角的窗格中顯示。
詳細信息窗格:部署或運行函數後,單擊交易日誌(右下角)中的曏下箭頭,展開日誌,查看交易的詳細gas成本。
請看一個示例合約及其操作:
Solidity
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.9;
contract GasDemo {
uint256 public count;
mapping(address => uint256) public balances;
function increment() public {
count += 1;
}
function updateBalance(uint256 newBalance) public {
balances[msg.sender] = newBalance;
}
}
通過Remix在Goerli測試網上部署GasDemo
合約。
多次運行increment
函數。
在交易詳情中查看使用的gas。
運行updateBalance
函數,設置不衕的餘額。
再次查看使用的gas。
思考:
現在,大家已經加深了對以太坊智能合約中gas的理解。我們通過Remix進行實踐,掌握了不衕操作如何影響交易的總gas成本。在下一章中,我們將深入探討優化策略,學習如何讓合約消耗較少的gas。
請堅持探索,不斷嘗試!
在以太坊中,每個操作都會産生一定的gas成本。一些常見的成本包括:
了解常見的成本非常重要,因爲許多gas優化策略即是用較便宜的操作代替較昂貴的操作。
通過Remix,你可以輕鬆地了解我們的合約操作所消耗的gas。
靜態分析:進入Remix中的Analysis
選項卡(顯微鏡圖標)。此工具將提供代碼中的潛在問題和優化機會。
部署和運行:部署合約後(在第1課中已經執行),每次運行合約都將顯示一個gas估值。當調用函數時,使用的gas將會在右下角的窗格中顯示。
詳細信息窗格:部署或運行函數後,單擊交易日誌(右下角)中的曏下箭頭,展開日誌,查看交易的詳細gas成本。
請看一個示例合約及其操作:
Solidity
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.9;
contract GasDemo {
uint256 public count;
mapping(address => uint256) public balances;
function increment() public {
count += 1;
}
function updateBalance(uint256 newBalance) public {
balances[msg.sender] = newBalance;
}
}
通過Remix在Goerli測試網上部署GasDemo
合約。
多次運行increment
函數。
在交易詳情中查看使用的gas。
運行updateBalance
函數,設置不衕的餘額。
再次查看使用的gas。
思考:
現在,大家已經加深了對以太坊智能合約中gas的理解。我們通過Remix進行實踐,掌握了不衕操作如何影響交易的總gas成本。在下一章中,我們將深入探討優化策略,學習如何讓合約消耗較少的gas。
請堅持探索,不斷嘗試!