陣列與切片:存取速度
通常認為陣列在存取元素時比切片更快。然而,基準測試揭示了一個令人驚訝的結果:本地切片優於本地數組。
測試對四個函數進行了基準測試:存取全域和本地切片和陣列。分析結果,全域切片確實比全域數組稍慢,與預期一致。然而,本地切片的效能明顯優於本地數組。
原因
檢查本地數組和切片基準函數的 amd64 組件,出現了顯著的差異。數組版本在數組存取操作期間重複將數組位址載入到記憶體中,而切片版本從記憶體載入一次後只在暫存器上執行計算。
結論
這表示存取切片元素(透過取消引用底層陣列)所涉及的額外步驟並不是局部變數的重大瓶頸。在這種情況下,由於更有效地使用暫存器,切片可以提供更快的存取速度。值得注意的是,這個結果對於大型數組或切片或作為函數參數傳遞時可能不成立。
以上是陣列與切片:哪一個提供更快的元素存取?的詳細內容。更多資訊請關注PHP中文網其他相關文章!