陣列與切片:存取速度
在Go 中,切片和陣列是兩個密切相關的資料結構,用於儲存以下元素特定的資料型態。雖然它們有相似之處,但一個關鍵區別在於存取速度,特別是在比較全域實例和本地實例時。
基準結果:
為了評估性能差異,使用以下函數進行基準測試:
結果一致顯示全域數組的存取速度比全域切片更快。然而,本地切片明顯優於本地數組。
說明:
為了確定這種差異的原因,本地數組和切片基準函數的 amd64 彙編已檢查。
這表明本地切片受益於有效的寄存器利用,而本地數組通過不斷加載數組的
此外,數組版本會調用runtime.duffcopy函數,這是一個冗長的彙編例程,而切片版本則不會。這進一步加劇了效能差異。
以上是Go 陣列與切片:為什麼本地切片存取比本地數組存取更快?的詳細內容。更多資訊請關注PHP中文網其他相關文章!