【问题标题】:php memory how much is too muchphp内存多少算太多
【发布时间】:2011-02-04 20:07:40
【问题描述】:

我目前正在使用我自己的框架重新编写我的网站(它非常简单并且完全符合我的需要,我不需要 Zend 或 Cake PHP 之类的东西)。我做了很多工作来确保所有内容都被正确缓存,在文件中缓存页面以避免 sql 查询并通常限制 sql 查询的数量。

总的来说,它看起来非常快。首页平均耗时(超过 100 次)为 0.046152 微秒。

但我不确定的一件事是我是否已经做了足够的工作来减少 php 内存使用量。我唯一遇到过的问题是在上传大文件时。

使用 memory_get_peak_usage(TRUE),我认为它会返回脚本运行时使用的最大内存量,平均(超过 100 次)为 1572864 字节。

这样好吗?

我意识到你不知道我在做什么(这很简单,获取 10 篇最新文章、每篇文章的评论数、获取用户控件、侧边栏中的热门标签等)。但是你会担心使用这种内存的脚本每天会被点击 50,000 次吗?还是在高峰时段每秒一次?

我意识到这是一个非常开放的问题。希望你能理解这有点像在黑暗中刺伤,我真的只是在寻找一些重新保证,它不会在重新发布之日可怕地死去。

编辑:只是我为自己做的一个小实验。我下载并安装了 Wordpress 和一个没有额外附加组件的默认安装,只有一个用户和一个帖子,它使用了 10.5 兆字节的内存或“11010048 字节”。我现在对我的 1.5mb 感到非常满意。

【问题讨论】:

    标签: php memory-management


    【解决方案1】:

    内存使用值可能会有很大差异并且会波动,但正如您在更新中已经说过的那样,常规的 WordPress 实例比这要胖得多。我很难让 WordPress 后端以 16 兆字节的 memory_limit 运行 - 更不用说插件发挥作用了。因此,我认为 1.5 兆字节的峰值执行正常任务是完全可以的。

    显然,生成时间很大程度上取决于您的网站所运行的硬件。但是,在正常情况下,0.046152 秒(我假设您的意思是秒)的生成时间对我来说听起来很不错。

    【讨论】:

    • 我也会想到几秒钟。但是,我在开始时使用 define('START', microtime()) 并在最后使用 START - microtime() 来测量时间。我想我写的是这样认为这会给我以微秒而不是秒为单位的时间?
    • @Rob 你在使用float 参数吗?
    • php.net 似乎没有指定默认值。但不,我没有向 microtime 函数发送任何参数。
    【解决方案2】:

    这是一个主观问题。 PHP 有很多开销,当使用 TRUE 调用函数时,该开销将包括在内。当您在一个简单的 Hello World 脚本中调用该函数时,您会明白我的意思。另请记住,根据 PHP 是作为 apache 模块还是 FastCGI 运行,结果可能会有很大差异。

    很遗憾,没有人可以提供保证。总会有不可预见的变数导致网站瘫痪。执行负载测试。使用代码分析器缩小任何瓶颈的位置,看看是否有办法让这些代码块更高效

    Encyclopaedia Britannica 在十年前推出广告支持的百科全书时认为他们已经做好了准备。开发人员不知道他们会在发布当天在早安美国宣布它。整个事情都崩溃了好几天。

    【讨论】:

    • 为什么用TRUE调用函数会有很多开销?是不是 FALSE 需要更多的计算?
    【解决方案3】:

    只要您的系统不进行交换,您的内存使用是合理的。任何额外的问题都只是过早的优化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-28
      • 2010-12-02
      • 2022-10-16
      • 1970-01-01
      • 2010-11-04
      • 2011-01-25
      • 2010-09-22
      • 2012-09-23
      相关资源
      最近更新 更多