2
在某些時候,有人向我暗示,我的PHP腳本中的遲緩可能部分是因爲我從函數返回了一個大數組。相反,他建議將一個對象引用傳遞給該函數,並讓該函數直接在該數組上工作。返回值與傳遞對象引用
如果這產生了顯着差異,我打算將函數樣式更改爲返回有關函數執行(時間基準,嘗試等)的信息數組,並直接在對象引用上工作。
那麼你怎麼看?
在某些時候,有人向我暗示,我的PHP腳本中的遲緩可能部分是因爲我從函數返回了一個大數組。相反,他建議將一個對象引用傳遞給該函數,並讓該函數直接在該數組上工作。返回值與傳遞對象引用
如果這產生了顯着差異,我打算將函數樣式更改爲返回有關函數執行(時間基準,嘗試等)的信息數組,並直接在對象引用上工作。
那麼你怎麼看?
不,它沒有任何區別。
PHP實現了copy-on-write,這意味着即使您爲另一個變量賦值或從函數返回值,該值也只是在內部通過引用傳遞。只有在寫入時才被實際複製,即使只有在沒有其他變量引用它時也是如此。既然你是從一個函數返回數組,所以沒有其他變量應該引用這個數組,因此在任何時候都沒有複製。
PHP在指針,引用和變量處理方面做了很多優化。不要以爲你可以輕鬆勝過,PHP對此太高級了。寫下你的意思。和往常一樣:簡介找到真正的瓶頸。
+1個人資料提示 – Eineki 2011-04-30 01:35:12
+5複製寫說明和+5分析建議:) – alex 2011-04-30 01:43:51