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 相关文章推荐
Adodb的十个实例(清晰版)
Dec 31 PHP
使用apache模块rewrite_module (转)
Feb 14 PHP
php 采集书并合成txt格式的实现代码
Mar 01 PHP
php设计模式之单例模式使用示例
Jan 20 PHP
php读取纯真ip数据库使用示例
Jan 26 PHP
php中替换字符串中的空格为逗号','的方法
Jun 09 PHP
ThinkPHP CURD方法之limit方法详解
Jun 18 PHP
使用array_map简单搞定PHP删除文件、删除目录
Oct 29 PHP
php视频拍照上传头像功能实现代码分享
Oct 08 PHP
yii2控制器Controller Ajax操作示例
Jul 23 PHP
PHP jQuery+Ajax结合写批量删除功能
May 19 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
Apr 21 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一句话cmdshell新型 (非一句话木马)
2009/04/18 PHP
ubuntu下编译安装xcache for php5.3 的具体操作步骤
2013/06/18 PHP
thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
2019/05/29 PHP
PHP正则表达式函数preg_replace用法实例分析
2020/06/04 PHP
javascript支持firefox,ie7页面布局拖拽效果代码
2007/12/20 Javascript
AlertBox 弹出层信息提示框效果实现步骤
2010/10/11 Javascript
将nodejs打包工具整合到鼠标右键的方法
2013/05/11 NodeJs
jquery控制背景音乐开关与自动播放提示音的方法
2015/02/06 Javascript
jQuery使用removeClass方法删除元素指定Class的方法
2015/03/26 Javascript
AngularJS入门教程之双向绑定详解
2016/08/18 Javascript
javascript 内置对象及常见API详细介绍
2016/11/01 Javascript
Vue 2.x教程之基础API
2017/03/06 Javascript
JavaScript实现类似淘宝的购物车效果
2017/03/16 Javascript
解决vue router使用 history 模式刷新后404问题
2017/07/19 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
2017/08/24 Javascript
日期时间范围选择插件:daterangepicker使用总结(必看篇)
2017/09/14 Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
2017/11/21 Javascript
angular2中Http请求原理与用法详解
2018/01/11 Javascript
vue cli2.0单页面title修改方法
2018/06/07 Javascript
vue.js响应式原理解析与实现
2020/06/22 Javascript
layui内置模块layim发送图片添加加载动画的方法
2019/09/23 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
Python实现把utf-8格式的文件转换成gbk格式的文件
2015/01/22 Python
基于python中的TCP及UDP(详解)
2017/11/06 Python
Python enumerate索引迭代代码解析
2018/01/19 Python
Python使用reportlab模块生成PDF格式的文档
2019/03/11 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
2019/06/25 Python
python和C++共享内存传输图像的示例
2020/10/27 Python
Python 获取异常(Exception)信息的几种方法
2020/12/29 Python
HTML5新增加标签和功能概述
2016/09/05 HTML / CSS
广告传媒专业应届生求职信
2014/03/01 职场文书
法律六进活动方案
2014/03/13 职场文书
食堂标语大全
2014/06/11 职场文书
公司感恩节活动策划书
2014/10/11 职场文书
总经理助理岗位职责
2015/01/31 职场文书
关于Python使用turtle库画任意图的问题
2022/04/01 Python