2014-09-25 111 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