如何提高PHP写入文件的速度 50

使用的是file_put_contents,读取上万个文件,再每个文件分别拆分写入到数十个文件中去,感觉速度非常的慢。请问有没有什么算法能提高这种工作效率?... 使用的是file_put_contents,读取上万个文件,再每个文件分别拆分写入到数十个文件中去,感觉速度非常的慢。请问有没有什么算法能提高这种工作效率? 展开
 我来答
幻之谁愚
推荐于2016-07-06 · TA获得超过4.4万个赞
知道大有可为答主
回答量:1.2万
采纳率:77%
帮助的人:930万
展开全部
  1、代码优化
  代码优化不仅仅是写出干净和清晰的代码,而是对代码进行一定的简化。可以使用Zend Optimizer来自动帮助完成这些繁杂的工作。Zend Optimizer可以从Zend Technologies的网站http://www.zend.com/免费得到,但必须同意它的许可约定,因为它不是以GPL方式发行的。它的原理很简单,即通过检测Zend引擎产生的中间代码,并对它进行优化,从而获得更高的执行速度。
  2、使用缓存
  如果PHP程序的规模很大,那么提高速度的办法就是使用缓存。现在已经有许多缓存方案可供选择,其中包括Zend Cache、APC和Afterburner Cache。
  3、压缩网页内容
  影响站点的访问速度还有1个重要因素,那就是下载速度。解决的办法就是压缩网页内容。对于纯文本内容而言,HTTP压缩技术可压缩至原大小的40%以下,从而提供60%以上的数据传输节约。虽然Web服务器会因为压缩导致CPU占用的略微上升,但可以节约大量用于传输的网络IO。
  4 其它技巧
  在编程时,使用一些小技巧也可以加快PHP的运行速度:
  (1)用i+=1代替i=i+1,既符合c/c++的习惯,效率相对还更高。
  (2)尽可能使用PHP内部函数。
  (3)能使用单引号字符串时,尽量使用单引号字符串。单引号字符串的效率要高于双引号字符串。
  (4)用foreach代替while遍历数组,foreach的效率明显高于while循环,而且不需要调用reset函数。
  
黑一白一猫
2014-07-30 · 超过22用户采纳过TA的回答
知道答主
回答量:38
采纳率:100%
帮助的人:20.4万
展开全部
file_get_contents是仅读取文件的功能中速度最快的一个函数,但是你一次读取和处理这么多文件,肯定慢的

不太清楚你把那几万个文件做了什么,但是有两个个优化建议:
1、如果你用完一个文件的内容后就不再需要这部分的内容了,你可以用unset将这个变量注销掉,可以为服务器节省资源和提高运行速度

2、可以用数组存放读取到的文件内容,不要每个文件的内容都用独立的变量去存储,因为这样你一万个文件的话,就要一万个变量了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
青青墙外草
2014-07-30 · TA获得超过2210个赞
知道小有建树答主
回答量:777
采纳率:68%
帮助的人:464万
展开全部
文件I/O本来就是最慢的一环。你这种问题有两个层面去解决:
1、从单个线程来看,如果都是小文件,你可以通过增大缓存来减少I/O次数,从而提升I/O效率。这恐怕是最有效的方法了。参考http://www.oschina.net/code/snippet_998019_20520
2、多开辟几个线程做并发IO。简单的说,总共1万文件,你可以整10个同样功能的php,每个php负责读1000。这样能再快点儿,但效果有限,而且不是越多越好。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
普达迪泰
2014-07-31 · TA获得超过358个赞
知道小有建树答主
回答量:275
采纳率:100%
帮助的人:128万
展开全部
  1. 你最好在服务器端做这个工作,这样可以省去下载上传的信息资源传送过程。

  2. 写的程序在运行过程中最好不要让cpu饱和,这样可以让cpu运行在较好的状态,不至于卡机,当程序执行到一定数量,可以用usleep()或者sleep()使函数稍微暂停,达到减轻服务器负担的功效,具体到什么数量再执行这个暂停函数就要好好把握了,否则可能比不用更慢一些。

  3. 至于算法,我个人也没有什么建议了,只能建议你在写程序的时候多考虑用数组,速度相对要快一些。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-07-30
展开全部
物理问题,换固态硬盘,或者内存够大(用内存)虚拟个硬盘然后写入
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式