取消设置所有变量? (不$ $ _SESSION ['']或全局变量)

问题描述:

好吧,所以我正在寻找一种方法来取消设置页面生成的所有变量,但不是全局变量或会话。

我发现这在另一个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使用率。使用更高效的数据结构或查询更少的信息。 –

这绝对不是优化脚本内存使用率的方法。

您想确定脚本的问题区域,并处理这些问题。

如果不知道脚本的作用,很难提供任何提示。以下是一些对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

um ..总技术人员与科技vocab :)分析会是什么? – user115422

+0

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

+0

尝试[xdebug](http://www.xdebug.org/)过去大量使用它。基本上可以让你看到你的脚本在各个点上做了什么以及每个部分的proc/memory使用情况。 – nickhar