简单说说PHP优化
/ 储存执行结果1小时
memcache_set($key, $result, NULL, 3600); } return $result; }
当然除了上述方法外还可以用到文件缓存(将数据库中的数据取出储存在文件中),还可以生成静态HTML文件等,但是这些方法的缓存还是将文件储存在硬盘上而不是内存中。 输出控制 除了上述缓存技术外还可以通过输出控制来让程序执行的时间更少 下面通过PHP与APACHE来说说输出控制 1、PHP输出控制 这里最主要用到ob_start()以及PHP中的OB系列函数,这些函数可以做什么呢? 第一就是静态模版技术。所谓静态模版技术就是通过某种方式,使得用户在client端得到的是由PHP产生的html页面。如果这个html页面不会再被更新,那么当另外的用户再次浏览此页面时,程序将不会再调用PHP以及相关的数据库,对于某些信息量比较大的网站,例如sina,163,sohu。类似这种的技术带来的好处是非常巨大的。 代码示例:
<?php ob_start(); //打开缓冲区 ?> php页面的全部输出 <?php $content = ob_get_contents(); //取得php页面输出的全部内容 $fp = fopen("output.html", "w"); //创建一个文件,并打开,准备写入 fwrite($fp, $content); //把php页面的内容全部写入output.html,然后…… fclose($fp); ?>
当然这个ob系列函数还有其他很多用处我就不在这里一一说明了。 2、apache输出控制 将SendBufferSize设置为页面大小,这样就能将页面一次性放在发送缓冲区从而增加处理速度。 SendBufferSize 指令 说明:TCP发送缓冲区大小(字节) 语法:SendBufferSize bytes 默认值:SendBufferSize 0 作用域:server config 状态:MPM 模块:beos, mpm_netware, mpm_winnt, mpmt_os2, prefork, worker 这个指令设置服务器的TCP发送缓冲区的大小(字节)。提高这个值会导致两个后果:高速度和高潜伏时间(100ms左右)。如果设置为"0",将使用操作系统默认值。 通过源代码方式编译你的Apache/PHP/Database 可让你的程序增加10--15%的速度 下面再说说在代码优化的时候应该注意的 1、短代码不等于快的代码 很多人在写程序时希望将代码写的越简洁越好,但是越短的代码有时候反而需要更长的执行时间,所以哪怕是用更多的代码也不使用速度慢的代码 2、在写程序的时候更应该注重程序的扩展性,而不是追求速度 3、在优化你的代码之前,先看看跟数据库有关的部分,因为大多数应用程序的瓶颈在数据库而不是代码 4、微优化得不偿失 什么叫做微优化?就像前面所说的将正则表达式部分的代码改用字符串函数代替。这样做有以下缺点: (1)花费时间较长 (2)不会解决你的性能问题 (3)很有可能会破坏以前的代码从而产生未知的错误 (4)付出大于回报 这里还不得不提到一个误区,有些人为了让程序更加优化,在分析业务逻辑的时候便将优化考虑在内了,从而为了得到更优的代码而改动业务逻辑。这是十分愚蠢的想法,因为程序的目的便是为了处理现实中遇到的问题,是为这些问题服务的,怎么能本末倒置呢。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |