Solidity

在查詢大量但固定數量的結構(數組或映射)時,使用什麼更好?

  • March 25, 2021

一般來說,映射似乎通常會導致更便宜的操作。當元素的數量是固定的(比如 20K)並且設置元素只發生一次時呢?

映射仍然會更便宜嗎?如果需要迭代怎麼辦?

在深處,數組是具有範圍綁定鍵的映射。最昂貴的方面是 SSTORE 操作和 SLOAD 操作,它們在兩種情況下都是相同的。

數組有額外的步驟(操作,所以氣體)來檢查行是否超出範圍。

動態數組的成本要高得多,因為每次推送都會覆蓋從儲存讀取的長度和範圍檢查,而不是編譯後的字節碼,即額外的 SSTORE 和 SLOAD。

希望能幫助到你

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