Solidity
為什麼汽油價格會根據州的知名度(公共/外部/私人/內部)而有所不同?
為什麼 gas 價格會根據功能的狀態可見性(公共/外部/私人/內部)而有所不同?
在乙太坊中,交易需要gas,因此需要ether。交易的 gas 消耗取決於 EVM 必須執行的操作碼。所以這都是關於正在使用的操作碼。
更多操作碼,使用更多氣體(一些操作碼非常昂貴,因為它們的計算量很大)
例如,對僅在外部訪問的函式使用可見性外部強制使用 calldata 作為參數位置,這在函式執行時節省了一些氣體。
你也有這個很棒的 twitter 執行緒,
forge inspect @CONTRACT ir-optimized
這將幫助你視覺化你的程式碼正在使用什麼操作碼 https://twitter.com/w1nt3r_eth/status/1579486967963693057希望這可以幫助
天然氣價格因州的可見性而異,主要是由於數據的操縱方式,尤其是在公共和外部指定者之間。公共可見性通常會花費更多的 gas,因為公共函式中的參數被複製到
memory
,而具有外部可見性的函式可以直接從中讀取參數,因為使用比使用更便宜calldata
,因此成本更低。然而,內部和私人指定者的 gas 成本幾乎相同。calldata``memory
看: