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

15

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

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

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

开始   110,440 字节
峰值    656,056 字节
结束 637,976 字节
时间    0.008 秒

以上是没有发现任何记录时的数据!

当有40条记录时,我已经到达了大约2MB的内存使用量,尽管时间保持不变。

我知道过早地进行优化是有害的,但我必须问:

是否需要重新设计?这种内存使用量是否正常?什么被认为是过度使用?

6个回答

13

当然,方便的时候最好进行优化,但使用2MB的内存听起来还不错。PHP4的默认配置为8MB,而PHP5为16MB。当然,许多预打包的PHP构建将具有不同的配置,但总的来说,如果您可以将应用程序保持在8MB以下,那么您可以确信它在这方面非常易于移植。


8
显然,这一切都取决于你正在构建的应用程序的复杂性。平均来说,我们应用程序的页面占用20 MB(最小)的内存。这是因为会话中有很多对象,在脚本能够打印“hello world”之前需要进行很多初始化过程(身份验证、权限管理、通知等)。
许多东西都在内存空间中占据空间,包括类定义、全局变量、函数定义等。通过使用自动包含功能减少加载的类数量是保持脚本仅使用必要类定义的好办法。
我不知道加载扩展是否会改变内存使用情况 - 这应该是需要测试的,因为默认情况下我们可能不需要所有默认加载的扩展?

3

个人建议将限制设置为8 MB。如果超过这个限制,尝试优化应用程序。原因是一些共享主机和 PHP 4 配置的默认进程限制为8 MB。


2

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

我们拥有内存限制超过2GB的大型生产系统。但这显然是针对我们和我们的场景高度调整的,我绝不会为共享托管环境提倡这种做法。


0

PHP 在不同版本中有已知的资源限制。当前版本可以处理128MB,PHP 5.2.0 版本为16MB,所有早期版本为8MB。


0
只要您计划一个良好的缓存机制(opcode缓存,对象缓存等),内存使用就变得不那么重要了。您仍然远低于常见的php框架内存使用率。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接