【发布时间】:2011-02-15 06:08:08
【问题描述】:
如果我包含一个巨大的 PHP 数组,我会期望什么类型的性能损失? 例如,假设我在“data.php”中有一个 1GB 的 PHP 数组,看起来像
$data = 数组( //1GB 的数据 )
如果我在“header.php”中包含那个巨大的“data.php”文件,它将如何影响“header.php”执行时的性能? 谢谢!
【问题讨论】:
-
你到底想做什么?你的想法不是实现它的方法。
-
我正在考虑用不同的方法在我的代码中缓存部分数据库,因为我无法访问 memcache 或 memcached 之类的东西。
-
您需要使用 MySQL 查询缓存来优化和/或缓存您的查询。 PHP 不是状态持久的,所以你不能缓存在 PHP 的内存中——这就是数据库的用途。见:dev.mysql.com/doc/refman/5.1/en/query-cache.html
-
1GB 的磁盘数据一旦被 PHP 加载,将占用远远超过 1GB 的内存。除了存储实际数据所需的空间之外,还有与您创建的每个变量和数组元素相关联的各种元数据。你很可能会发现你的 1GB 信息变成了 4GB 甚至 40GB 的实际内存使用量。
-
感谢 banzaimonkey 的提示。不幸的是,我在共享主机上,无法设置查询缓存。
标签: php performance arrays include