PHP应用程序加速探索之简介

程序

(一)简介 
本文尝试对PHP程序加速的各个方面进行探索,包括必要性以及从不同角度采取的具体措施。希望有助于读者了解PHP程序加速,并应用于实际。

(二)是否需要加速?
这个问题听起来有点愚蠢。在这个时代,很少有人会怀疑时间是最宝贵的财富,尤其是在商业市场上。程序执行越快,用户就节约越多的时间,这样你的程序就可以用更少的时间和服务器资源为用户服务,从而产生更多效益。
我想对于大部份人(包括我自己)来说,很多WEB项目都是在很紧张的时间里完成的,通常没有经过缜密的思考和严格的测试。当开始一个新的WEB项目。很多人都在构建那种“快而乱”的应用,缺乏必要的时间来调整和改良代码,这时优化和加速就是我们必须采取的措施。
然而需要特别指出的是,并不是所有程序都需要加速。
优化已完成的代码是很浪费时间的,最好的方法是在写代码的时候就注意到效率,然后完成项目后只优化确实需要优化的那部份。一般一个程序只会有少数几个影响速度的瓶颈,将它们找出来并解决掉,程序就可以很好地运行。另外,当遇到执行效率低下的情况,首先要用大局的眼光来找出影响效率的主要因素,而不要拘泥于细节—例如数据量过大,服务器带宽不够,或硬件配置过低,在这样的情况下,优化代码于事无补。
另外,在没有发现程序有明显的执行缓慢的迹象时,就不要太吹毛求疵,为了改进一些非常细节的代码而浪费时间。用这些时间,你可以完成另一个项目或为原来的项目完成一个扩展功能。当然你可以笑话我不够负责,没有把工作做得尽善尽好,我也可以说你是完美主义者。 
综上,在你决定为你的PHP程序提速之前,问问自己是否有必要。

(三)如何加速?
要回答“如何加速”这个问题前,需要先回答以下两个小问题:
1. 你的程序慢在哪一部份?
2. PHP可以从哪几个方面考虑加速?
第一个小问题显然我无法给你答案,但我建议你用“测试脚本执行速度”的方法来解决。只有找出限制速度的瓶颈,才能考虑如何去解决。
第二个小问题我大概的答案是:代码优化,压缩输出,内容缓存输出,函数缓存输出,加速/缓存工具软件。如果你知道更多请告诉我。

时间: 2024-12-31 14:22:36

PHP应用程序加速探索之简介的相关文章

PHP程序加速探索之加速工具软件

程序     接着我们要关注一下PHP加速的另一个领域-缓存工具软件.这类软件都是从优化PHP运行环境来提速的,不需要改变任何代码.我们可以大概地将它们称为"执行码优化/缓存工具",你可以理解为它们用来实现比较底层的优化/缓存.     以下列出目前比较常用的此类工具,具体哪种效果最好,请用自己的服务器环境测试: (一) APC Alternative PHP Cache http://pecl.php.net/package-info.php?package=APC APC运行于Li

PHP程序加速探索之缓存输出

程序|缓存 内容缓存输出 PEAR cache 接下来我们开始探索更常用的缓存技术,这也是本文的重点部份.首先我们使用PEAR中的cache包.PEAR可以将内容缓存于文件,数据库或者内存中,我们以文件为例. 下面是一个没有使用缓存的PHP小程序: pear_content_cache1.php <?php echo "这是内容.<P>"; echo "当前时间是" . date('M-d-Y H:i:s A', time()) . "&

PHP程序加速探索之压缩输出gzip

程序|压缩     利用Apache中的mod_gzip模块,我们可以利用gzip的压缩算法来对Apache服务器发布的网页内容进行压缩后再传输到客户端的浏览器.如果是纯文本的内容,效果非常明显,大约可以压缩到原来的30%-40%,使用户的浏览速度大大加快. Gzip需要客户端浏览器支持,目前大部份浏览器都支持gzip,如IE,Netscape,Mozilla等,所以这种方法值得一试.我们可以利用PHP中的预定义变量$_SERVER['HTTP_ACCEPT_ENCODING']来判断客户端浏览

PHP程序加速探索之代码优化

程序|优化     掌握了PEAR::BenchMark,现在你已经知道如何测试你的代码,知道如何判断你的代码是快是慢,是哪一部份比较慢.那么接下来我要说的就是如何消灭或优化那部份慢的代码. 这一点上我个人最主要的经验只有两点,一是消除错误的或低效的循环:二是优化数据库查询语句.其实还存在一些其它的优化细节,比如"str_replace比ereg_replace快"."echo比print快"等等.这些我暂时都放在一边,稍后我会提到用缓存来对付过于频繁的IO. 下面

PHP程序加速探索之脚本执行速度测试

程序|脚本|速度|执行     前面有提到,只有找到影响速度的代码,我们才有可能进行优化.PEAR的benchmark包中的Benchmark_Timer类和Benchmark_Iterate类,可以用来很方便地测试脚本执行的速度.(关于PEAR的安装与配置请自行查看相关资料) . 首先用Benchmark_Iterate类来测试程序中某个函数或类的某个方法的执行时间. benchmark1.php require_once('Benchmark/Iterate.php'); $benchmar

PHP程序加速探索之服务器负载测试

程序|服务器 服务器负载太大而影响程序效率也是很常见的,我们需要对此进行测试.这里我以目前最常用的Apache服务器为例.  Apache服务器自带有一个叫AB(ApacheBench)的工具,在bin目录下.使用这个轻巧的工具我们可以对服务器进行负载测试,看看在重负荷之下服务器的表现如何.ApacheBench 可以针对某个特定的 URL 仿真出连续的联机请求,同时还可以仿真出同时间点数个相同的联机请求,因此利用 ApacheBench 可帮助我们在网站开发期间仿真实际上线可能的情况,利用仿真

PHP程序加速探索的代码优化方法

握了PEAR::BenchMark,现在你已经知道如何测试你的代码,知道如何判断你的代码是快是慢,是哪一部份比较慢.那么接下来我要说的就是如何消灭或优化那部份慢的代码. 这一点上我个人最主要的经验只有两点,一是消除错误的或低效的循环:二是优化数据库查询语句.其实还存在一些其它的优化细节,比如"str_replace比ereg_replace快"."echo比print快"等等.这些我暂时都放在一边,稍后我会提到用缓存来对付过于频繁的IO. 下面我们将三个功能相同,但

Docker快速入门以及环境配置详解_docker

前言 数据科学开发环境配置起来让人头疼,会碰到包版本不一致.错误信息不熟悉和编译时间漫长等问题.这很容易让人垂头丧气,也使得迈入数据科学的这第一步十分艰难.而且这也是一个完全不常见的准入门槛. 还好,过去几年中出现了能够通过搭建孤立的环境来解决这个问题的技术.本文中我们就要介绍的这种技术名叫Docker.Docker能让开发者简单.快速地搭建数据科学开发环境,并支持使用例如Jupyter notebooks等工具进行数据探索. 简介 Docker 最初 dotCloud 公司内部的一个业余项目

打开天窗说“亮话”,手淘这些年的技术大揭秘

中国云计算产业最具影响力的盛会之一--2016杭州云栖大会(https://yunqi.aliyun.com/)将在云栖小镇召开.连续举办七届的云栖大会一直是业界了解阿里云计算生态发展和应用趋势.体验前沿技术和产品的最佳平台,来自海内外的上万名开发者.创业者聚集于此,分享着他们对云计算的思考与实践经验.7年来,从产品发布到行业解决方案展示,从关注技术到技术与服务并重,从单一的客户到生态全景的展现,大会的核心内容一直在"进化",而2016年杭州云栖大会,则以"飞天・进化&quo