我有一个简单的问题,我应该写设置或php.ini
文件,或者使用ini_set()
在PHP文件。 这是关于更好的表现?
非常感谢你。
我有一个简单的问题,我应该写设置或php.ini
文件,或者使用ini_set()
在PHP文件。 这是关于更好的表现?
非常感谢你。
取决于你的目标。 php.ini
设置将被应用在默认情况下所有的PHP应用程序, ini_set
将在飞行中对当前的PHP应用程序更改PHP设置。
如果您有问题的表现, php.ini
应该会更快,因为你跳过函数调用ini_set
。
在典型的2018硬件上运行ini_set('date.timezone', $timezone)
100万次大约需要500毫秒。
对于PHP 7.1 ini_set()
绝对不比加载另一个.ini文件慢。 事实上,这是更快的运行ini_set()
中的第二文件与require()
而不是加载.ini文件。
即使是空的.ini文件具有一些开销。 我怀疑内部的.ini文件做类似反正东西的ini_set。
# Baseline (no .ini, empty script)
$ time for ((i=0;i<1000;i++)); do php -n empty.php; done
real 0m21.214s
# php.ini: date.timezone = Australia/Sydney
$ time for ((i=0;i<1000;i++)); do php -c php.ini empty.php; done
real 0m23.015s
# inline.php: <?php ini_set('date.timezone', 'Australia/Sydney')
$ time for ((i=0;i<1000;i++)); do php -n inline.php; done
real 0m21.150s
这些数字似乎是相当有代表性。 然而,这里的性能差异是不是有意义。 这可能归结于什么样的环境一致性和你需要的灵活性。
当我想到的ini_set()比打开你的ini文件,做更改,因为如果你改变了INI设置一旦超过这将是适用于你所有的PHP项目,但在函数ini_set()你没有,甚至认为你的其他PHP更好的方法应用。