這不是一個錯誤或問題。但是當我閱讀大量性能相關文章時,我開始瞭解JavaScript變量如何加載更多資源,因此最好將JavaScript的全局變量放入局部變量中以便工作 - 特別是在for循環中。
所以我想知道是否這樣的事情也發生在$ _POST與PHP。 如果我有大量的發佈數據,它會給我提高性能。保存在本地數組中,例如$ post_data = $ _POST;
然後我在需要的地方參考。
這不是一個錯誤或問題。但是當我閱讀大量性能相關文章時,我開始瞭解JavaScript變量如何加載更多資源,因此最好將JavaScript的全局變量放入局部變量中以便工作 - 特別是在for循環中。
所以我想知道是否這樣的事情也發生在$ _POST與PHP。 如果我有大量的發佈數據,它會給我提高性能。保存在本地數組中,例如$ post_data = $ _POST;
然後我在需要的地方參考。
不值得的時間。 $_POST
已經是內存中的數組,因此不需要複製它。
要獲得$_POST
字節大小,你可以這樣做:
strlen(serialize($_POST));
(serialize
會變成任何物體在其中可以保存和unserialize
d的字符串。)
FWIW在for
循環中,如果你不緩存陣列的長度,而是使用類似這樣的東西...
for(var i = 0; i < myarray.length; i++) {}
... JS每次開始迭代時都必須重新計算.length
,所以它很貴,特別是在大數組上。
答案的第二部分似乎與這個問題無關。 – 2013-05-03 07:26:43
@傑克 - 是啊,只是扔在我的兩分錢... OP提到JS循環,激動:) – Ben 2013-05-03 07:36:15
在php中,全局變量的主要關注點是內存。訪問全局或本地作用域變量的性能差異是可以忽略的。
不確定JavaScript部分(請提供參考資料嗎?)。在PHP中,這將有效地創建$ _POST數組的副本,因此可以使用更多內存,而不會對速度改進產生任何影響。
如果您:
$post_data = $_POST;
PHP將在$_POST
變量$post_data
只創建參考到的信息,所以你不會有更多的內存使用量,直至changind信息。如果您嘗試在PHP將在內存中創建信息副本時更改數據。
我不認爲會有明顯的性能改善,如果有的話。 – 2013-05-03 07:25:55