在互联网上搜索一段时间后,我发现使用SplFileInfo->getFilename()
和SplFileInfo->getBasename()
的结果几乎没有任何区别。
这让我想到了以下问题:使用这两个中的一个之间有什么速度差异吗?
答案 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次并执行了几次代码。执行时间以秒为单位显示。这些是结果:
结论: getFilename()
似乎工作得更快一点。大约7%。也许它与getBasename()
的可选参数有关,这使得它有点慢。