新的效率提升file_exists 和is_file

php技巧

写php任何时候我都会想到效率,效率,因为你永远不知道运行你程序的网站的主机状况。
而且大部分主机都有iis ,cpu占用的限制,没有限制的主机还是别买了,呵呵
我一直以来都用file-exits 来判断文件是否存在,那天偶然发现有这么一说:is_file 比file_exits更快
写了一段代码测试了一下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$start_time = get_microtime();
for($i=0;$i<10000;$i++)
{
if(is_file('url.txt')) {
	//do nothing;
}
}
echo 'is_file耗时-->'.(get_microtime() - $start_time).'<br>';
 
$start_time = get_microtime();
for($i=0;$i<10000;$i++)
{
if(file_exists('url.txt')) {
	//do nothing;
}
}
 
echo 'file_exits-->'.(get_microtime() - $start_time).'<br>';
 
 
function get_microtime()//时间
{
	list($usec, $sec) = explode(' ', microtime()); 
	return ((float)$usec + (float)$sec); 
}

上面是1w次的测试,你会发现一个神奇结果
1.如果url.txt确实是存在的
那么is_file大约耗时 0.007sec.
file_exits耗时0.16sec.
is_file函数的确速度惊人!
但是别高兴太早,看另外一种情况
2.如果url.txt确实 不 存在
is_file耗时0.53sec.
file_exits耗时0.21sec.

3.看起来file_exits函数并不会因为该文件是否真的存在而影响速度,但是is_file影响就大了。

还是需要研究一下哪里适用这两个函数…

Leave a Reply

Icons by N.Design Studio. Designed By Ben Swift. Powered by WordPress and Free WordPress Themes
Entries RSS Comments RSS Log in