2014-09-25 81 views
2

考虑到通用的LAMP设置,您可以将PHP配置保存在.ini文件中,以便PHP读取并将其应用于Web服务器初始化。但是,在性能方面,它与开发人员通常在应用程序引导程序文件中保留的运行时配置相比如何呢?php.ini vs运行时配置

由于PHP使用shared nothing architecture,每个请求都会启动一个新的(sub?)进程,因此它需要再次读取*.ini文件?或者它已经被PHP主流程共享了?如果是的话,在运行时改变很多配置会给每个请求增加更多的开销,而不是把它留在ini文件上,对吧?!

回答

1

那么,首先它不是PHP分叉一个新的过程。 PHP完全取决于Web服务器。所以是的,如果你使用的是LAMP,那么Apache就需要整个PHP模块加载到每个进程的内存中(每个进程都是30-50 MB以上)。 同样是的,它需要为每个新进程读取.ini,但是对于需要完成的所有其他加载而言,这是完全可以忽略的。

Ofcourse,另一种方法是使用ini_set这将不得不在每个请求上调用。性能方面,它将与.ini文件相同如果进程是针对每个请求重新创建的。但是,进程经常被重用(这就是为什么你应该修改Apache配置的最小进程数和最大进程数)。

因此总的来说,php.ini文件有一个轻微的性能优势。然而,就像PHP和Apache的所有性能问题一样,做什么工作!如果您正在尝试优化,那可能是您的疑问!

+0

当今的性能问题更多的是了解如何在引擎盖下工作,而不是获得更好的性能分析结果。感谢分享这些细节:) – cvsguimaraes 2014-09-25 17:26:38

+0

没问题! :d – taylorcressy 2014-09-25 17:29:43