我注意到在php-cli.ini文件中启用browscap.ini条目会增加php的启动时间。
[browscap]
browscap = /etc/browscap.ini
time php -r 'echo "Hello\n";'
Hello
real 0m1.709s
user 0m1.358s
sys 0m0.348s*诉下文*
[browscap]
;browscap = /etc/browscap.ini
time php -r 'echo "Hello\n";'
Hello
real 0m0.041s
user 0m0.029s
sys 0m0.011s现在我知道了,当调用像get_browser()这样的函数时,php会查找get_browser文件。如果使用这样的函数,我可以理解它的滞后。
我不认为php会在每次启动时将browscap.ini(可以是大数据)加载到内存中。但是,为什么php的启动会出现巨大的延迟呢?
也许它会尝试检查browscap.ini文件是否存在于每个启动或其他验证中?无法在php文档中找到任何内容。
那么,为什么php启动时间的巨大差异呢?
发布于 2015-08-11 23:05:24
PHP在启动时加载其整个配置(包括browscap.ini),在CLI中,每次调用php时都会加载。在脚本中不调用get_browser()并不重要,甚至不需要给php任何脚本来解释;如果配置文件这样说的话,浏览器将被加载。启动时间的差异是显而易见的,因为典型的browscap.ini通常比较大。
下面是我的机器使用不同大小的浏览文件和简单php -v的一堆结果
https://stackoverflow.com/questions/31952850
复制相似问题