2012-10-23 152 views
-1

好吧,所以我正在尋找一種方法來取消設置頁面生成的所有變量,但不是全局變量或會話。

我發現這在另一個SO問題:

$list_of_vars = array_diff(get_defined_vars(), $GLOBALS); // Was just get_defined_vars() before Marc B corrected me in his post. 
foreach($list_of_vars as $var){ 
    unset($var); 
} 

的事情是,在評論中有人說,這個取消設置()ALL在所有變量包括全局和會話。我需要一種方法來重置所有不是全局變量,而不是會話

我正在做這個優化RAM。如果這沒有幫助,那麼有沒有其他優化RAM的方法?

+0

\ * facepalm \ *這是_not_如何優化RAM使用率。使用更高效的數據結構或查詢更少的信息。 –

回答

2

這絕對不是優化腳本內存使用率的方法。

您想確定腳本的問題區域,並處理這些問題。

如果不知道腳本的作用,很難提供任何提示。以下是一些對SO討論(部分非常高的水平和/或框架特有的,但他們仍包含有價值的信息):

+0

好吧,這是有道理的,我猜想PHP文件會自動取消所有的變量,但想確保...也有一個頁面:http://pastebin.com/4GtxexqU(expires in a天)。這消耗了一個我會說最ram,因爲它有這麼多的查詢和提取。有沒有什麼合乎邏輯的例子,我可以做什麼來解決這個問題(不要求你修復所有問題,而只是想知道我能做什麼或需要查看以避免過度使用內存)。 頁面從數據庫中提取數據,並在HTML中迴應它,其中一部分可以進入兆字節值的數據... – user115422

+0

並正在做$ var = $ var2;使用$ var和$ var2的內存?如果是的話,是否有其他方式重命名變量? – user115422

+0

@muqman我現在無法通過代碼,但@ nickhar的建議值得跟進:使用PHP分析器,或只是['memory_get_usage()'](http://php.net/manual/en /function.memory-get-usage.php)調用來找出究竟使用了多少RAM。總的來說,你正在將很多頁面拼湊成一個PHP文件。如果您分開各個區域,您可能會發現代碼更易於配置。 –

0

如果您正在尋找解決腳本中內存使用率過高的問題,那麼最好通過分析腳本來查看腳本正在執行的操作。

+0

um ..總技術人員與科技vocab :)分析會是什麼? – user115422

+0

@muqman http://en.wikipedia.org/wiki/Profiling_(computer_programming) –

+0

嘗試[xdebug](http://www.xdebug.org/)過去大量使用它。基本上可以讓你看到你的腳本在各個點上做了什麼以及每個部分的proc/memory使用情況。 – nickhar