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制作静态网站的模板框架
Oct 09 PHP
PHP三层结构(上) 简单三层结构
Jul 04 PHP
PHP 异步执行方法,模拟多线程的应用分析
Jun 03 PHP
php生成图形验证码几种方法小结
Aug 15 PHP
php判断页面是否是微信打开的示例(微信打开网页)
Apr 25 PHP
PHP命名空间(Namespace)简明教程
Jun 11 PHP
PHP中使用curl入门教程
Jul 02 PHP
PHP+Mysql无刷新问答评论系统(源码)
Dec 20 PHP
php单元测试phpunit入门实例教程
Nov 17 PHP
php设计模式之单例模式用法经典示例分析
Sep 20 PHP
laravel框架使用极光推送消息操作示例
Feb 15 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
Nov 10 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使用parse_url和parse_str解析URL
2015/02/22 PHP
PHP创建多级目录的两种方法
2016/10/28 PHP
php事件驱动化设计详解
2016/11/10 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
详解PHP中的8个魔术常量
2020/07/06 PHP
经典的解除许多网站无法复制文字的绝招
2006/12/31 Javascript
基于jquery &amp; json的省市区联动代码
2012/06/26 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
JQuery中attr方法和removeAttr方法用法实例
2015/05/18 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
2020/12/22 Javascript
基于Vue.js实现数字拼图游戏
2016/08/02 Javascript
JQuery实现DIV其他动画效果的简单实例
2016/09/18 Javascript
nodeJS模块简单用法示例
2018/04/21 NodeJs
LayerClose弹窗关闭刷新方法
2018/08/17 Javascript
基于Vue-Cli 打包自动生成/抽离相关配置文件的实现方法
2018/12/09 Javascript
vue如何自动化打包测试环境和正式环境的dist/test文件
2019/06/06 Javascript
vue中解决chrome浏览器自动播放音频和MP3语音打包到线上的实现方法
2020/10/09 Javascript
解决vux 中popup 组件Mask 遮罩在最上层的问题
2020/11/03 Javascript
[00:23]DOTA2群星共贺开放测试 25日无码时代来袭
2013/09/23 DOTA
tensorflow获取变量维度信息
2018/03/10 Python
Python中使用logging和traceback模块记录日志和跟踪异常
2019/04/09 Python
python之生产者消费者模型实现详解
2019/07/27 Python
python图的深度优先和广度优先算法实例分析
2019/10/26 Python
pycharm 添加解释器的方法步骤
2020/08/31 Python
英国哈罗德园艺:Harrod Horticultural
2020/03/31 全球购物
Blue Nile中国官网:全球知名的钻石和珠宝网络零售商
2020/03/22 全球购物
乌克兰设计师和品牌的服装:Love&Live
2020/04/14 全球购物
怎样声明一个匿名的内部类
2016/06/01 面试题
自考生自我鉴定范文
2013/10/01 职场文书
回门宴新郎答谢词
2014/01/12 职场文书
优秀毕业生的求职信
2014/07/21 职场文书
海洋科学专业求职信
2014/08/10 职场文书
上市公司董事长岗位职责
2015/04/16 职场文书
色戒观后感
2015/06/12 职场文书
教你使用pyinstaller打包Python教程
2021/05/27 Python
笔记本自带的win11如何跳过联网激活?
2022/04/20 数码科技