如何提高PHP写入文件的速度
发布网友
发布时间:2022-04-26 02:46
我来回答
共5个回答
热心网友
时间:2022-04-06 01:50
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函数。
热心网友
时间:2022-04-06 03:08
file_get_contents是仅读取文件的功能中速度最快的一个函数,但是你一次读取和处理这么多文件,肯定慢的
不太清楚你把那几万个文件做了什么,但是有两个个优化建议:
1、如果你用完一个文件的内容后就不再需要这部分的内容了,你可以用unset将这个变量注销掉,可以为服务器节省资源和提高运行速度
2、可以用数组存放读取到的文件内容,不要每个文件的内容都用独立的变量去存储,因为这样你一万个文件的话,就要一万个变量了
热心网友
时间:2022-04-06 04:42
文件I/O本来就是最慢的一环。你这种问题有两个层面去解决:
1、从单个线程来看,如果都是小文件,你可以通过增大缓存来减少I/O次数,从而提升I/O效率。这恐怕是最有效的方法了。参考http://www.oschina.net/code/snippet_998019_20520
2、多开辟几个线程做并发IO。简单的说,总共1万文件,你可以整10个同样功能的php,每个php负责读1000。这样能再快点儿,但效果有限,而且不是越多越好。
热心网友
时间:2022-04-06 06:34
你最好在服务器端做这个工作,这样可以省去下载上传的信息资源传送过程。
写的程序在运行过程中最好不要让cpu饱和,这样可以让cpu运行在较好的状态,不至于卡机,当程序执行到一定数量,可以用usleep()或者sleep()使函数稍微暂停,达到减轻服务器负担的功效,具体到什么数量再执行这个暂停函数就要好好把握了,否则可能比不用更慢一些。
至于算法,我个人也没有什么建议了,只能建议你在写程序的时候多考虑用数组,速度相对要快一些。
热心网友
时间:2022-04-06 08:42
物理问题,换固态硬盘,或者内存够大(用内存)虚拟个硬盘然后写入