2009-09-29 65 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的内容。您可以设法在进程之间共享(只读)数据,而不是为每个请求复制数据。

相关问题