考虑到常见的LAMP设置,您可以将PHP配置保留在某个.ini
文件中,以便PHP读取并在Web服务器初始化时应用它们。但是,在性能问题上,它如何与开发人员通常留在应用程序引导程序文件中的运行时配置进行比较?!
由于PHP使用shared nothing architecture,每个请求都会启动一个新的(sub?)进程,因此需要再次读取*.ini
个文件?或者它已经由主要的PHP进程共享?如果是,在运行时更改大量配置会为每个请求增加更多开销,而不是将其保留在ini
个文件中,对吧?!
答案 0 :(得分:1)
好吧,首先,不是PHP会产生新进程。这完全取决于PHP所属的Web服务器。所以,是的,如果你正在使用LAMP,那么Apache,整个PHP模块必须被加载到每个进程的内存中(每个进程超过30-50 MB,这是巨大的!)。
同样,是的,它需要为每个新进程读取.ini
,但这对于需要完成的所有其他加载完全可以忽略不计。
当然,另一种方法是使用ini_set
,它必须在每个请求上调用。性能方面,它与每个请求重新创建的.ini
文件 IF 进程相同。但是,进程通常会被重用(这就是为什么你应该修改Apache配置的最小和最大进程数)。
总而言之,php.ini文件有一些轻微的性能优势。
然而,就像PHP和Apache的所有性能问题一样,做什么工作!如果您正在尝试优化,那可能是您的查询!