2009-09-29 64 views
0

我正在創建一個使用$ GLOBALS變量的腳本。有太多可以放入變量嗎?你可以把太多的信息放入一個變量嗎?

如果我在頁面加載時有很多存儲在$ GLOBAL變量中的信息,這是否會減慢網站的速度或者不是真的?

在變量中應該存儲多少信息有限制嗎?它是如何工作的?

當我完成它時,從該變量中刪除信息會更好嗎?

感謝您的幫助!在我走之前,要確保我得到這個。

+7

這通常是編程不佳的標誌我會說 - *爲什麼*您需要使用$ GLOBALS?你究竟在做什麼?一些背景信息可能有幫助。 – 2009-09-29 00:21:30

回答

2

在PHP中,有一個memory_limit的配置指令(在php.ini中),你應該知道的。正如meder所說,你應該退後一步,重新評估一些事情。你是否真的使用所有這些數據在每個Web服務器請求。

在幾乎所有情況下,只需在需要時加載所需的數據即可。例如,即使你從某個文件而不是數據庫中讀取所有這些數據,你最好將該文件拆分成邏輯組,然後加載你需要的數據(一次!),就在使用它之前(第一次)。

假設你正在運行Apache/mod_php,在每個請求上加載所有請求將會擴大你的httpd進程的大小,並且當你用流量進行擴展時,你將開始交換(這意味着你的應用會慢到一個爬行,甚至更糟,變得僵局),這要快得多。

我你真的需要全部或大部分數據可用於所有(或幾乎所有)請求,請考慮查看類似於memcache的內容。您可以設法在進程之間共享(只讀)數據,而不是爲每個請求複製數據。

相關問題