【问题标题】:Could unsetting variables in php affect caching?取消设置 php 中的变量会影响缓存吗?
【发布时间】:2011-08-29 07:21:52
【问题描述】:

也许这是一个愚蠢的问题,但在我的页面末尾,我将所有变量设置为 null 然后取消设置它们,以提高性能,尽管我知道它可能对性能几乎没有影响,但是即便如此,这会对任何缓存模块(例如 varnish、apc 或 memcached)有任何影响吗?

【问题讨论】:

  • 无论如何,它们都会在脚本结束时被释放。让 PHP 为你清理 :)
  • 唯一应该取消设置变量的时候是当你需要内存来存储脚本的内存密集型部分,或者它是一个长时间运行的脚本并且以后不需要它们时.否则 PHP 会在脚本退出时为你清理。
  • 非常感谢您的意见,希望你们将其设置为答案,我感谢所有的帮助。

标签: php caching memcached apc varnish


【解决方案1】:

除了(可能)垃圾收集之外,它不会影响任何东西。看看here APC 是如何工作的。大多数其他缓存插件的工作方式相同。

您会注意到像 APC 这样的缓存器(顺便说一句,memcached 与这个问题无关 - Varnish 也没有)仍然解析所有 PHP。唯一可以取消设置变量的事情就是让垃圾收集器启动。如果 GC 启动,您可能会看到减速(然后加速)。话虽如此,但它并不是很确定。通常 PHP 在垃圾收集方面做得很好,所以除非你试图模拟某种 RAII 行为,否则你不应该担心它。

Varnish 是一个 HTTP 加速器(与 PHP 无关)。 memcached 是一个基于内存的分布式信息存储(也与 PHP 的内部工作无关)。

【讨论】:

  • 对了,谢谢你的帮助,好吧,我还以为有一个模块,可以缓存已编译的 php 代码,这样就不必在每次运行时都对其进行编译,知道这可能是什么是吗?
  • 我认为某些缓存器上的一些设置可能是可行的。无论哪种方式,即使最终产品被缓存,变量的取消设置也不会影响它。
猜你喜欢
  • 2016-10-01
  • 2013-02-17
  • 2012-08-30
  • 2020-11-25
  • 2013-02-17
  • 2023-01-23
  • 2014-04-03
  • 1970-01-01
相关资源
最近更新 更多