php - 删除我不使用的 PHP 扩展是否有意义?

标签 php performance apache optimization

I am not very sure whether it is better suited here or on ServerFault, so please feel free to move it, if needed. I just posted it here because I think it is highly relevant to PHP programmers and more people might be able to help me.

我在 Ubuntu 下的 apache 服务器上运行 PHP 应用程序。几天前,我查看了 phpinfo(),发现我只使用了已安装和启用的大多数扩展中的一小部分。未使用的扩展列表很多(我需要其中一些的可能性很小,但如果需要的话,这很容易确定和启用)。所以除此之外还有(这些东西在做什么的解释是近似的。很容易找到精确的描述):

  • bcmath(任意计算精度)
  • bz2、zip、zlib、phar(存档器)
  • dba,PDO(处理数据库)
  • libXML、simpleXML、XML、XMLReader、XMLWriter、DOM(很多用于处理 XML 的东西)
  • ereg(正则表达式。很久以前就弃用了)
  • FTP
  • gettext(国际化 php 应用程序)
  • readline(关于命令行的东西)
  • 反射(reflection)(逆向工程类、接口(interface)的能力)
  • SOAP(编写 SOAP 服务/客户端)
  • sysvshm、wddx(不知道)

如您所见,列表非常庞大。我使用 Mongo 作为存储,我与服务器的所有通信都是通过 ajax (JSON),所以我非常怀疑我现在或在不久的将来是否需要 XML/Dba/SOAP/ftp。

因此,在尝试逐一禁用它们并检查我的应用程序是否仍然有效之前,我想问:禁用它们是否有意义?我知道 disabling unneeded modules from apache can give a reasonable boost in productivity服务器,但我还没有发现任何关于 PHP 的此类正常测试/计算。

所以我的问题可以用这种方式更好地表述:是否有人做过一些测试来找出通过禁用/删除不需要的模块(速度、内存消耗等)我可以获得哪些改进。请不要发布类似“确保它有意义 - 删除它们”或“不要删除 - 你会破坏某些东西”甚至引用“过早的优化是......”之类的内容。

最佳答案

不是真的。
禁用模块只会减少每个 Apache+PHP 实例的占用空间。这确实可以给你带来提升,但仅限于高负载/交通繁忙的情况。就进程启动/上下文切换不是主要瓶颈而言,启用所有模块是安全的。

然后再...
一个非常明显的异常(exception)是 xdebug。它不是真正的模块,但如果你让它打开,每个请求将花费你大约 200-400 毫秒。大数字,特别是自从谷歌开始奖励快速(更)的网站。调试器和配置文件必须关闭才能进行生产。

关于php - 删除我不使用的 PHP 扩展是否有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23029420/

相关文章:

php - 如何获取 3,200 条推文 (Twitter API 1.1)

php - Ubuntu 16.04 中缺少 suphp

php 脚本命令行 $_POST 参数

c++ - std::map::find 的效率与值的数据大小有关吗?

performance - 编译 F# 引用 : performance?

javascript - ClojureScript HashMap 性能与 Javascript 对象的比较

java - Httpclient 4.5 关闭 http 连接需要双倍时间

apache - 无法验证身份服务器 SSL 握手错误

php - 当用户向下滚动页面时从数据库延迟加载(类似于 Twitter 和 Facebook)

php - 如何用PHP制作聊天室脚本?