【问题标题】:Keep PHP functions in RAM将 PHP 函数保存在 RAM 中
【发布时间】:2014-06-13 21:18:56
【问题描述】:

我的服务器上有一个 php 文件,其中包含许多静态 php 函数 - 每次有人访问我网站上的页面时都会加载它们。不幸的是,每次加载它们大约需要我网页整个执行时间的 10%-30%。

就像我说的,这些函数是全局的,每个页面都需要 - 基本上就像普通的 PHP 函数一样(例如rand()die()microtime())。据我所知,加载 这些 函数不会占用任何性能速度。我猜它们保存在 RAM、Apache 或其他任何地方的某个地方——我目前还不是专家。

但是,有没有办法告诉我的服务器为每个 PHP 页面记住我自己的全局函数?无需每次都加载?

【问题讨论】:

  • 您是否已经在使用APC之类的东西?
  • 不,我从未听说过。您能简要总结一下优势吗?或者解释一下它的作用?
  • 我认为this Wikipedia article 做得更好,谢谢 :)
  • 哦,好吧,我明白了!好吧,这似乎很有趣。这是否允许我使用所有函数专门缓存我的 PHP 文件,或者它是否也会自动干扰所有其他 php 文件?我只是有点害怕可能的缺点
  • 默认情况下,它会缓存并加速每个文件,尽管您可以设置过滤器来排除文件。有一段时间没有使用它了,但它会是我加快 PHP 速度的“首选”。

标签: php function ram


【解决方案1】:

使用PHP APC (Alternative PHP Cache)

PHP 的工作方式是服务器将 PHP 编译为字节码,然后执行。

APC 的好处是它可以缓存字节码,并将其重新用于后续请求。

【讨论】:

  • 完美答案!添加了更多信息的实际链接。
  • 非常感谢!我所有 php 函数的加载时间从大约减少。 0.0050 秒到 0.0002 秒!太棒了,谢谢
  • 自 PHP 5.5 起,apc 被移除,取而代之的是 opcache(又名 Zend 优化器+) 你可能想在这里阅读:php.net/manual/en/intro.opcache.php 还有另一个扩展(Apcu)仍然提供数据(对象)良好的旧 apc 的缓存功能。这是存储库:github.com/krakjoe/apcu
【解决方案2】:

使用纯 PHP 可能无法实现您的想法。您可以结帐 HACK(来自 FB)。 如果你只是想让你的页面加载得更快。您可以从代码中替换 rand() 函数。它将使您的网站加载速度更快。找到 rand() 函数的合适替代方法并替换 rand。

【讨论】:

    猜你喜欢
    • 2011-05-04
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    相关资源
    最近更新 更多