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

时间:2014-04-12 10:53:45

标签: php performance apache optimization

  

我不确定它是否更适合此处或ServerFault,因此如果需要,请随意移动它。我刚刚在这里发布它,因为我认为它与PHP程序员高度相关,更多的人可能能够帮助我。

我在Ubuntu下的apache服务器上运行PHP应用程序。几天前我调查了phpinfo(),发现我只使用了安装和启用的大多数扩展中的一些。未使用的扩展名列表很大(我需要的其中一些扩展的可能性很小,但如果是这样,这很容易确定和启用)。除此之外还有(对这些事情的作用是近似的解释。找到精确的描述非常容易):

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

如你所见,名单很大。我使用Mongo作为存储,我与服务器的所有通信都是通过ajax(JSON)进行的,因此我非常怀疑我现在或在不久的将来需要XML / Dba / SOAP / ftp。

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

所以我的问题可以用这种方式更好地说明:有没有人做过一些测试,以找出我从禁用/删除不需要的模块(速度,内存消耗等)中获得的改进。请不要发布类似“确定有意义”的内容 - 删除它们,或者“不删除” - 您可以破坏某些内容'或甚至引用过早优化是......'

2 个答案:

答案 0 :(得分:1)

禁用模块只会减少每个Apache + PHP实例的占用空间。这确实可以为您带来提升,但仅限于高负荷/高流量。只要进程启动/上下文切换不是主要瓶颈,您就可以安全地启用所有模块。

答案 1 :(得分:0)

绝对。如果您正在装载您不使用的东西,那么您就是在浪费。虽然在很多情况下您可能没有注意到这一点,但是一旦您获得了一个有点活跃的网站,您就会注意到这种影响!

但要注意:如果您要通过删除不必要的东西进行优化,那么使用像jQuery这样的库可能是虚伪的,除非您使用它提供的每个功能;)这是其中之一我不使用jQuery而是编写自己的"精度"工具做我想要的,仅此而已。我的用户已经注意到了差异!不要低估去除多余元素的能力!