is_file和file_exists效率比较
目前在弄文件缓存的时候用到了判定文件存在与否,is_file()还是file_exists()呢?is_file和file_exists两者效率比较起来,谁的运行速度更快呢?还是做个测试吧:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<?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 ); } ?> |
测试结果:
当文件存在时:
运行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
当文件不存在时:
运行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_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)
is_dir()对比file_exists()测试结果:
当目录存在时,运行1万次
is_dir–>0.0058560371398926
file_exits–>0.11063098907471
当目录不存在时,运行1万次
is_dir–>0.7159481048584
file_exits–>0.71305584907532
最新文章
- $_SERVER 的用法
- usb端口号绑定
- JAVA GC 简单总结
- ACM 红黑树
- 面包板入门电子制作(class1)视频 全套30集高清
- 刑事案件的构成要素 zt
- 获取datagrid中编辑列combobox的value值与text值
- iis6 下发布MVC2项目的方法
- 转:Java架构师与开发者提高效率的10个工具
- servletContext百科
- getchar()与EOF
- UVA 1508 - Equipment dp状态压缩
- Linux(Ubuntu)使用日记------为程序添加桌面快捷方式
- python元组类型的变量以及字符串类型的变量作为参数进行传值
- ubuntu Nvidia driver install
- Confluence 6 从关闭的连接中恢复
- 攻击者利用的Windows命令、横向渗透工具分析结果列表
- ubuntu查看占用某端口的程序
- 使用apidoc 生成Restful web Api文档——新手问题与解决方法
- 如何永久关闭选项";Tools >; Close Other Forms";
热门文章
- Struts2 Convention插件的使用(3)方法前的@Action注解
- interviewbit :Min Steps in Infinite GridBookmark Suggest Edit
- lintcode:接雨水
- 【转】terminal 快捷键
- 15 things to talk about in a healthy relationship
- [iOS问题归总]SourceTree+osChina版本管理出现的问题
- C#AutoResetEvent和ManualResetEvent的区别
- js 鼠标上移 图片放大
- 虚拟机 linux系统如何安装vmware Tools
- 甲骨文推出MySQL Fabric,简化MySQL的高可用性与可扩展性