is_file和file_exists效率比较

is_file() 和 file_exists() 函数,虽然说都可以正常运行,但是:is_file 和 file_exists两者效率比较起来,谁的运行速度更快呢?于是,做了一个小测试:

Posted in PHP onMarch 14, 2021
<?php
$start_time = get_microtime();
for($i=0;$i<10000;$i++)//默认1万次,可手动修改
{
if(is_file('test.txt')) {
//do nothing;
}
}
echo 'is_file-->'.(get_microtime() - $start_time).'<br>';
$start_time = get_microtime();
for($i=0;$i<10000;$i++)//默认1万次,可手动修改
{
if(file_exists('test.txt')) {
 //do nothing;
}
}
echo 'file_exits-->'.(get_microtime() - $start_time).'<br>';
function get_microtime()//时间
{
list($usec, $sec) = explode(' ', microtime());
return ((float)$usec + (float)$sec);
}
?>

一、is_file和file_exists效率比较 测试结果

 

1、当文件存在时:

 

运行1万次:

is_file–>0.0067121982574463

file_exits–>0.11532402038574

 

运行10万次:

is_file–>0.069056034088135

file_exits–>1.1521670818329

 

当运行100万次:

is_file–>0.6924250125885

file_exits–>11.497637987137

 

2、当文件不存在时:

 

运行1万次:

is_file–>0.72184419631958

file_exits–>0.71474003791809

 

运行10万次:

is_file–>7.1535291671753

file_exits–>7.0911409854889

 

当运行100万次:

is_file–>72.042867183685

file_exits–>71.789203166962

超过1分钟了,别忘了在php第一行加句:set_time_limit(120);//时间限制120秒

 

二、is_dir()对比file_exists()效率比较 测试结果

当目录存在时,运行1万次

is_dir–>0.0058560371398926

file_exits–>0.11063098907471

 

当目录不存在时,运行1万次

is_dir–>0.7159481048584

file_exits–>0.71305584907532

 

最终得出结论:

is_file()和file_exists()效率比较,结果当文件存在时,is_file函数比file_exists函数速度快14倍,当文件不存在时,两者速度相当。

同理,当文件目录存在时,is_dir()比file_exists()快18倍。不存在时两者效率相当。PHP的file_exists = is_dir + is_file。

如果要判断目录是否存在,请优先考虑函数 is_dir(directory)。

如果要判断文件是否存在,请优先考虑函数 is_file(filepath)。

 

 

PHP 相关文章推荐
PHP.MVC的模板标签系统(四)
Sep 05 PHP
基于mysql的bbs设计(四)
Oct 09 PHP
在PHP3中实现SESSION的功能(二)
Oct 09 PHP
用PHP与XML联手进行网站编程代码实例
Jul 10 PHP
PHP中去除换行解决办法小结(PHP_EOL)
Nov 27 PHP
写出高质量的PHP程序
Feb 04 PHP
PHP计算2点经纬度之间的距离代码
Aug 12 PHP
php调用KyotoTycoon简单实例
Apr 02 PHP
PHP实现的简单分页类及用法示例
May 06 PHP
PHP实现登录注册之BootStrap表单功能
Sep 03 PHP
PHP一致性hash分布式算法封装类定义与用法示例
Aug 04 PHP
Laravel基础_关于view共享数据的示例讲解
Oct 14 PHP
宝塔面板出现“open_basedir restriction in effect. ”的解决方法
open_basedir restriction in effect. 原因与解决方法
Mar 14 #PHP
aec加密 php_php aes加密解密类(兼容php5、php7)
Mar 14 #PHP
PHP配置文件php.ini中打开错误报告的设置方法
Jan 09 #PHP
imagettftext() 失效,不起作用
Mar 09 #PHP
PHP高并发和大流量解决方案整理
Mar 09 #PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
Mar 09 #PHP
You might like
PHP实现的服务器一致性hash分布算法示例
2018/08/09 PHP
层序遍历在ExtJs的TreePanel中的应用
2009/10/16 Javascript
js 动态选中下拉框
2009/11/26 Javascript
JS getStyle获取最终样式函数代码
2010/04/01 Javascript
用jquery实现自定义风格的滑动条实现代码
2011/04/26 Javascript
JS简单的轮播的图片滚动实例
2013/06/17 Javascript
jquery 层次选择器siblings与nextAll的区别介绍
2013/08/02 Javascript
JS/jQ实现免费获取手机验证码倒计时效果
2016/06/13 Javascript
JS取数字小数点后两位或n位的简单方法
2016/10/24 Javascript
深入理解Nodejs Global 模块
2017/06/03 NodeJs
Angular中ng-options下拉数据默认值的设定方法
2017/06/21 Javascript
JavaScript中的return布尔值的用法和原理解析
2017/08/14 Javascript
微信小程序 获取javascript 里的数据
2017/08/17 Javascript
JS动态添加的div点击跳转到另一页面实现代码
2017/09/30 Javascript
解决element ui select下拉框不回显数据问题的解决
2019/02/20 Javascript
angular6根据environments配置文件更改开发所需要的环境的方法
2019/03/06 Javascript
[01:04:02]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第二场 1月24日
2021/03/11 DOTA
Python标准库06之子进程 (subprocess包) 详解
2016/12/07 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
2017/06/02 Python
Python3 queue队列模块详细介绍
2018/01/05 Python
Python浅复制中对象生存周期实例分析
2018/04/02 Python
解决pycharm回车之后不能换行或不能缩进的问题
2019/01/16 Python
浅谈Python大神都是这样处理XML文件的
2019/05/31 Python
python数据处理之如何选取csv文件中某几行的数据
2019/09/02 Python
opencv3/C++ 平面对象识别&amp;透视变换方式
2019/12/11 Python
python super函数使用方法详解
2020/02/14 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
Python爬虫爬取杭州24时温度并展示操作示例
2020/03/27 Python
编程输出如下图形
2013/11/24 面试题
单位工程竣工验收方案
2014/03/16 职场文书
班长演讲稿范文
2014/04/24 职场文书
致百米运动员广播稿5篇
2014/10/13 职场文书
离职感谢信怎么写
2015/01/22 职场文书
学生会个人总结范文
2015/02/15 职场文书
在职人员跳槽求职信
2015/03/20 职场文书
结婚喜宴迎宾词
2015/08/10 职场文书