我有一个简单的问题,我应该写设置或php.ini
文件,还是在php文件上使用ini_set()
。关于性能,哪一个更好?
非常感谢。
发布于 2013-11-15 19:32:40
取决于你的目标。默认情况下,php.ini
设置将应用于所有php应用程序,ini_set
将动态更改当前php应用程序的php设置。
如果你有性能问题,php.ini
应该更快,因为你跳过了ini_set
的函数调用。
发布于 2018-10-24 07:01:29
在典型的2018年硬件上,运行ini_set('date.timezone', $timezone)
1,000,000次大约需要500毫秒。
对于PHP7.1,ini_set()
绝对不比加载另一个.ini文件慢。事实上,使用require()
在第二个文件中运行ini_set()
比加载.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
这些数字似乎很有代表性。然而,这里的性能差异并不是那么有意义。这可能归结为您需要什么样的环境一致性和灵活性。
发布于 2013-11-15 19:36:14
因为我认为ini_set()是比打开你的ini文件并做修改更好的方法,因为如果你改变ini设置一次以上,它将适用于你所有的php项目,但在ini_set()中,你甚至不需要考虑你的其他php应用程序。
https://stackoverflow.com/questions/20000111
复制相似问题