SplFileInfo-> getFilename()和getBasename()之间的速度差异

时间:2018-01-05 01:07:25

标签: php performance

在互联网上搜索一段时间后,我发现使用SplFileInfo->getFilename()SplFileInfo->getBasename()的结果几乎没有任何区别。

这让我想到了以下问题:使用这两个中的一个之间有什么速度差异吗?

1 个答案:

答案 0 :(得分:0)

简短版:是的,getFilename()似乎工作得更快。

长版:

所以,我做了以下测试环境:

$file = new SplFileInfo('test');

$start = microtime(true);
for($i = 0; $i < 1000000; $i++) { $file->getFilename(); }
$end = microtime(true);
$seconds = $end - $start;
echo "getFilename $seconds seconds.".PHP_EOL;

$start = microtime(true);
for($i = 0; $i < 1000000; $i++) { $file->getBasename(); }
$end = microtime(true);
$seconds = $end - $start;
echo "getBasename $seconds seconds.".PHP_EOL;

我在彼此之后执行了两个方法1.000.000次并执行了几次代码。执行时间以秒为单位显示。这些是结果: Test results

结论: getFilename()似乎工作得更快一点。大约7%。也许它与getBasename()的可选参数有关,这使得它有点慢。