PHP页面的可接受内存使用量是多少?

时间:2008-10-24 06:00:11

标签: php

我正在构建一个查询MySQL数据库的网页,并且(目前)生成一个纯文本列表的结果。完成单个记录的查询类似于:

  • 电影(标题,描述等)
    • 电影中的演员(姓名,性别)
    • 相关电影

出于好奇,我使用了memory_get_peak_usage()memory_get_usage()

start   110,440 bytes
peak    656,056 bytes
end 637,976 bytes
time    0.008 seconds

上面没有找到记录!

有40条记录我达到了大约2MB,但时间保持不变。

我知道过早优化是邪恶的,但我不得不问:

我需要做一些改造吗?这个内存使用是否正常?什么被认为过度?

6 个答案:

答案 0 :(得分:13)

最终,当方便的时候最好优化,但2MB的内存使用听起来不错。 PHP4的默认配置为8mb,PHP5为16mb。当然,很多预先打包的PHP版本会有不同的配置,但一般来说,如果你的应用程序可以保持在8mb以下,你可以肯定它在这方面具有很高的可移植性。

答案 1 :(得分:8)

显然,这一切都取决于您正在构建的应用程序的复杂性。平均而言,我们的应用程序页面占用的内存最多可达20 MB(最小)。这是因为会话中有很多对象,并且在脚本甚至可以说出hello world(验证,权限管理,通知......)之前会发生很多初始化过程。

内存空间中有很多东西,包括类定义,全局变量,函数定义等。减少加载类的数量(通过使用自动包含)是一种很好的方法来保持脚本只有必要数量的类定义。

我不知道加载扩展是否会改变内存使用情况 - 这应该是要测试的内容,因为默认情况下我们可能不需要所有默认加载的扩展名?

答案 2 :(得分:3)

我个人将限制设置为8 MB。如果我超过了,我会尝试改进我的申请。原因是某些共享主机和PHP 4配置的默认限制为每个进程8 MB。

答案 3 :(得分:2)

PHP在脚本执行期间不释放内存,因此您的内存限制必须与一个脚本将消耗的大多数内存一样高。如果大多数脚本消耗的是2MB,则将其设置为2MB,但如果需要780MB,则将其设置为。

我们拥有大型生产系统,内存限制设置超过2GB。但这显然对我们有很好的调整,对于我们的场景,我绝不会提倡共享托管环境。

答案 4 :(得分:0)

只要您计划好的缓存机制(操作码缓存,对象缓存等),内存使用就变得不那么重要了。你仍然低于普通的php框架内存使用。

答案 5 :(得分:-1)

PHP已知资源限制,具体取决于您使用的版本。当前版本可以处理128MB,PHP 5.2.0 = 16MB,以及所有以前的版本8MB。