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控制网页过期时间的代码
Sep 28 PHP
php中$_REQUEST、$_POST、$_GET的区别和联系小结
Nov 23 PHP
PHP函数学习之PHP函数点评
Jul 05 PHP
codeigniter框架批量插入数据
Jan 09 PHP
php判断ip黑名单程序代码实例
Feb 24 PHP
PHP图片自动裁切应付不同尺寸的显示
Oct 16 PHP
phalcon框架使用指南
Feb 23 PHP
php 使用curl模拟登录人人(校内)网的简单实例
Jun 06 PHP
基于PHPexecl类生成复杂的报表表头示例
Oct 14 PHP
PHP bin2hex()函数基础实例讲解
Feb 11 PHP
PHP XML Expat解析器知识点总结
Feb 15 PHP
PHP封装的mysqli数据库操作类示例
Feb 16 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 常用类汇总 推荐收藏
2010/05/13 PHP
PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象
2010/10/12 PHP
PHP url 加密解密函数代码
2011/08/26 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
2013/06/07 PHP
PHP控制反转(IOC)和依赖注入(DI)
2017/03/13 PHP
PHP生成短网址的思路以及实现方法的详解
2019/03/25 PHP
jqeury eval将字符串转换json的方法
2011/01/20 Javascript
Node.js插件的正确编写方式
2014/08/03 Javascript
关于编写性能高效的javascript事件的技术
2014/11/28 Javascript
js实现简单的可切换选项卡效果
2015/04/10 Javascript
JavaScript实现标题栏文字轮播效果代码
2015/10/24 Javascript
jQuery实现简单的tab标签页效果
2016/09/12 Javascript
JavaScript编写一个简易购物车功能
2016/09/17 Javascript
JS识别浏览器类型(电脑浏览器和手机浏览器)
2016/11/18 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的三大方法
2017/01/22 Javascript
Node.js编写CLI的实例详解
2017/05/17 Javascript
详解AngularJS脏检查机制及$timeout的妙用
2017/06/19 Javascript
浅谈angular4.0中路由传递参数、获取参数最nice的写法
2018/03/12 Javascript
JavaScript实现一个简易的计算器实例代码
2018/05/10 Javascript
JavaScript实现浅拷贝与深拷贝的方法分析
2018/07/05 Javascript
微信小程序实现音乐播放页面布局
2020/12/11 Javascript
python3实现公众号每日定时发送日报和图片
2018/02/24 Python
Python K最近邻从原理到实现的方法
2019/08/15 Python
利用pyshp包给shapefile文件添加字段的实例
2019/12/06 Python
Python中求对数方法总结
2020/03/10 Python
解决CSS3 transition-delay 属性默认值0不带单位失效的问题
2020/10/29 HTML / CSS
解析HTML5的存储功能和web SQL的相关操作方法
2016/02/19 HTML / CSS
有趣的睡衣和礼物:LazyOne
2019/11/27 全球购物
T3官网:头发造型工具
2019/12/26 全球购物
Python里面search()和match()的区别
2016/09/21 面试题
高校学生干部的自我评价分享
2013/11/04 职场文书
数控个人求职信范文
2014/02/03 职场文书
幼儿教师师德演讲稿
2014/05/06 职场文书
上课玩手机的检讨书
2014/10/01 职场文书
党员带头倡议书
2015/04/29 职场文书
Python通用验证码识别OCR库ddddocr的安装使用教程
2022/07/07 Python