当前位置: 移动技术网 > IT编程>开发语言>PHP > 【php性能优化】关于写入文件操作的取舍方案

【php性能优化】关于写入文件操作的取舍方案

2019年04月16日  | 移动技术网IT编程  | 我要评论

mide-194,抽湿器,大决战辽沈战役下载

对于使用php对文件进行写入操作有两种方案一种使用

file_put_contents() 和 fopen()/fwrite()/fclose() 两种方案至于应该怎么选,我觉得应该分情况选择,下面是实验的效果图

场景一:

写入的文件内容不多,不需要分批写入

使用file_put_contents()的情况

<?php
$str = "";
for ($i = 0;$i < 30000;$i++){
    $str .= '这是小段文本';
}
file_put_contents('file1.txt',$str);

执行完操作写入文件用时 2557 µs

使用 fopen 方式

<?php
$str = "";
for ($i = 0;$i < 30000;$i++){
    $str .= '这是小段文本';
}
$handle = fopen('file2.txt','w');
fwrite($handle,$str);
fclose($handle);

写入操作总耗时 2670 µs 虽然差距不大,但是我进行了多次实验,显示第二种方案确实比第一种时间长

场景二:

如果是将文本分批写入文件中的情况下

使用file_put_contents()的情况:

<?php
for ($i = 0;$i < 30000;$i++){
    $str = '这是小段文本';
    file_put_contents('file1.txt',$str,file_append);
}

用时 6215 ms

使用 fopen 方式

<?php
$handle = fopen('file2.txt','w');
for ($i = 0;$i < 30000;$i++){
    $str = '这是小段文本';
    fwrite($handle,$str);
}
fclose($handle);

总共用时 866 ms 两者之间的差距还是蛮大的!

总结:

对于写入文件操作如果是一次性写入的话则优先选用 file_put_contents() 方案;如果是分批写入的话则应该选择 fopen() 方案毕竟差距还是很大的~

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网