`
wbj0110
  • 浏览: 1585417 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

PHP编码优化加速技巧

    博客分类:
  • php
阅读更多

1. 尽量采用大量的PHP内置函数。
2. echo 
print 快。
3. 
不要把方法细分得过多,仔细想想你真正打算重用的是哪些代码?
4. 
在执行for循环之前确定最大循环数,不要每循环一次都计算最大值。
5. 
注销那些不用的变量尤其是大数组,以便释放内存。
6.  
并非要用类实现所有的数据结构,数组也很有用。
7.   $row[‘id’]
的效率是$row[id]7倍。
8. 
在包含文件时使用完整路径,解析操作系统路径所需的时间会更少。
9. 
如果你想知道脚本开始执行(译注:即服务器端收到客户端请求)的时刻,使用$_SERVER[‘REQUEST_TIME’]要好于time()
10. 
检查是否能用strncasecmpstrpbrkstripos函数代替正则表达式完成相同功能。
11. str_replace
函数比preg_replace函数快,但strtr函数的效率是str_replace函数的四倍。
12. 
如果一个字符串替换函数,可接受数组或字符作为参数,并且参数长度不太长,那么可以考虑额外写一段替换代码,使得每次传递参数是一个字符,而不是只写一行代码接受数组作为查询和替换的参数。
13.  
使用选择分支语句(译注:即switch case)好于使用多个ifelseif语句。
14.  
@屏蔽错误消息的做法非常低效。
15.   
打开apachemod_deflate模块。
16.   
数据库连接当使用完毕时应关掉。
18.   
错误消息代价昂贵。
19.  
尽量不要在for循环中使用函数,比如for($x=0; $x < count($array); $x)每循环一次都会调用count()函数。
20.   
在方法中递增局部变量,速度是最快的。几乎与在函数中调用局部变量的速度相当。
21.   
递增一个全局变量要比递增一个局部变量慢2倍。
22.   
递增一个对象属性(如:$this->prop++)要比递增一个局部变量慢3倍。
23.   
递增一个未预定义的局部变量要比递增一个预定义的局部变量慢910倍。
24.    
仅定义一个局部变量而没在函数中调用它,同样会减慢速度(其程度相当于递增一个局部变量)。PHP大概会检查看是否存在全局变量。
25.  
方法调用看来与类中定义的方法的数量无关,因为我(在测试方法之前和之后都)添加了10个方法,但性能上没有变化。
26.  
派生类中的方法运行起来要快于在基类中定义的同样的方法。
27.  
调用带有一个参数的空函数,其花费的时间相当于执行78次的局部变量递增操作。类似的方法调用所花费的时间接近于15次的局部变量递增操作。
28.  
用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会。当然,只有当你不需要在字符串中包含变量时才可以这么做。
29.  
echo输出多个字符串时,用逗号代替句点来分隔字符串,速度更快。
30.  Apache
解析一个PHP脚本的时间要比解析一个静态HTML页面慢210倍。尽量多用静态HTML页面,少用脚本。
31.  
除非脚本可以缓存,否则每次调用时都会重新编译一次。引入一套PHP缓存机制通常可以提升25%100%的性能,以免除编译开销。
32. 
尽量做缓存,可使用memcachedmemcached是一款高性能的内存对象缓存系统,可用来加速动态Web应用程序,减轻数据库负载。对运算码 (OP code)的缓存很有用,使得脚本不必为每个请求做重新编译。
33. 
当操作字符串并需要检验其长度是否满足某种要求时,你想当然地会使用strlen()函数。此函数执行起来相当快,因为它不做任何计算,只返回在zval结构(C的内置数据结构,用于存储PHP变量)中存储的已知字符串长度。但是,由于strlen()是函数,多多少少会有些慢,因为函数调用会经过诸多步骤,如字母小写化(译注:指函数名小写化,PHP不区分函数名大小写)、哈希查找,会跟随被调用的函数一起执行。在某些情况下,你可以使用isset() 技巧加速执行你的代码。
Ex.
(举例如下)
if (strlen($foo) < 5) { echo "Foo istoo short"; }
vs.
(与下面的技巧做比较)
if (!isset($foo{5})) { echo "Foo is tooshort"; }
调用isset()恰巧比strlen()快,因为与后者不同的是,isset()作为一种语言结构,意味着它的执行不需要函数查找和字母小写化。也就是说,实际上在检验字符串长度的顶层代码中你没有花太多开销。
34. 
当执行变量$i的递增或递减时,$i++会比++$i慢一些。这种差异是PHP特有的,并不适用于其他语言,所以请不要修改你的CJava代码并指望它们能立即变快,没用的。++$i更快是因为它只需要3条指令(opcodes)$i++则需要4条指令。后置递增实际上会产生一个临时变量,这个临时变量随后被递增。而前置递增直接在原值上递增。这是最优化处理的一种,正如ZendPHP优化器所作的那样。牢记这个优化处理不失为一个好主意,因为并不是所有的指令优化器都会做同样的优化处理,并且存在大量没有装配指令优化器的互联网服务提供商(ISPs)和服务器。
35.  
并不是事必面向对象(OOP),面向对象往往开销很大,每个方法和对象调用都会消耗很多内存。
36.  
如果在代码中存在大量耗时的函数,你可以考虑用C扩展的方式实现它们。
37.  
评估检验(profile)你的代码。检验器会告诉你,代码的哪些部分消耗了多少时间。Xdebug调试器包含了检验程序,评估检验总体上可以显示出代码的瓶颈。
38. mod_zip
可作为Apache模块,用来即时压缩你的数据,并可让数据传输量降低80%

分享到:
评论

相关推荐

    38条PHP编码优化加速技巧

    38条PHP编码优化加速技巧

    PHP编码优化规范

    ### PHP编码优化规范 #### 一、字符串操作优化 **单引号 vs 双引号:** 使用单引号(' ')包含字符串通常比双引号(" ")更快,因为在双引号包围的字符串中PHP会搜索变量,而单引号则不会。 **示例:** ```php //...

    php 代码优化指南,给你的php加速

    ### PHP代码优化指南 在开发基于PHP的应用程序时,代码的执行效率直接影响着用户体验和服务器资源的消耗。本文档详细列举了可能导致PHP代码性能下降的一些常见问题及其优化建议,适用于不同水平的PHP开发者。 ####...

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

    接着,`v3`函数展示了更进一步的优化技巧,它利用了PHP内置的`implode()`函数,一次性完成数组元素的连接,完全跳过了循环。这种方法不仅简洁,而且执行速度更快,因为系统级别的函数通常比自定义的循环实现更高效。...

    提高PHP性能的编码技巧以及性能优化详细解析

    以下是一些从标题和描述中提炼出的PHP性能优化技巧: 1. **使用绝对路径**:在`include`或`require`文件时,使用绝对路径而非相对路径。这样可以避免PHP在`include_path`中查找文件,从而节省解析操作系统路径的...

    php、java、vs、delphi语言开发ide常用的技巧

    - 通过开启 opcache 来加速 PHP 脚本的执行速度。 - 使用 APCu 等缓存机制来缓存数据,减少数据库访问次数。 3. **错误处理**: - 充分利用 try-catch 结构捕获异常并妥善处理。 - 配置 error_reporting 和 ...

    php学习电子书php 教程

    17. PHP框架:熟悉常见的PHP框架,如Laravel、Symfony、Yii等,它们提供了一套完整的开发规范和工具,加速项目开发。 八、安全性 18. 输入验证:对用户输入进行过滤和验证,防止SQL注入、跨站脚本攻击(XSS)等安全...

    PHP高级编程

    8. **性能优化**:了解如何利用`memcached`或`redis`进行缓存,使用`OPcache`加速PHP解释器,以及代码优化技巧,如减少数据库查询、避免冗余计算等。 9. **错误日志与调试**:学会使用`error_reporting`、`display_...

    零基础学PHP+MySQL源代码

    15. 部署与优化:讲解如何将项目部署到服务器,配置Nginx或Apache,以及性能优化技巧。 16. 版本控制:学习使用Git进行版本控制,理解分支、合并、提交、回退等概念,以及GitHub或GitLab的使用。 17. 测试:了解...

    PHP Solutions: Dynamic Web Design Made Easy

    该书由friendsofED出版社于2010年11月24日出版,共有528页,提供了丰富的实践技巧和安全编码实践。 #### 二、作者介绍 David Powers是一位资深的程序员和技术作家,专注于PHP和Web开发领域。他不仅拥有多年的编程...

    PHP精华文档

    - 常见框架如Laravel、Symfony、CodeIgniter等,提供了一套完整的MVC架构,加速开发进程。 - Composer:PHP的依赖管理工具,用于安装、更新项目依赖。 - PHPUnit:PHP的单元测试框架,确保代码质量。 5. **PHP...

    PHP项目开发

    - **性能优化**:采用缓存机制减少数据库查询次数,使用CDN加速静态资源加载速度。 - **安全性考虑**:对用户输入进行严格验证,防止SQL注入等攻击。 - **版本控制**:使用Git等工具进行版本管理,方便多人协作和...

    国外PHP动态第四期

    2. **性能优化技巧**:分享了一些实用的方法来提高PHP应用的运行效率,如使用缓存机制、优化数据库查询等。 3. **代码质量标准**:推荐了编写高质量、可维护代码的最佳实践,包括遵循编码规范、进行代码审查等。 4. ...

    齐享云php开源网盘源码 v1.0.zip

    开发者需要掌握PHP的图像处理库,如GD库或Imagick,以及优化图片加载速度的技巧。 3. **环境要求**:源码运行需要PHP环境,意味着服务器需要安装PHP解释器。此外,可能还需要配置MySQL数据库来存储用户信息、文件元...

    php学习实例]新闻系统news完整版

    通过这个实例,初学者可以学习到实际项目中的PHP编程技巧,了解Web应用的完整流程,同时提高数据库操作、页面渲染和用户交互的能力。对于有经验的开发者来说,这同样是一个检验和巩固PHP技能的好机会,可以从中学习...

    php论坛系统

    13. **性能优化**:包括数据库查询优化、代码性能分析、负载均衡、CDN加速等,确保论坛在高并发情况下仍能稳定运行。 综上所述,【php论坛系统】的学习和实践涵盖了Web开发的多个层面,对于想深入理解PHP Web开发的...

    XyPlayer稳定版,xyplayer解析官网,PHP源码.rar

    5. **学习借鉴**:通过阅读高质量的PHP代码,提升自身的编程技巧和设计模式理解。 三、结合使用与实践 1. **部署与配置**:将XyPlayer稳定版与PHP源码结合,搭建自己的视频服务平台,需要熟悉服务器环境配置和...

    自己写的php程序

    7. **性能优化**:PHP程序可能需要考虑性能,如使用缓存技术(如Memcached、Redis)减少数据库查询,或使用OpCache加速脚本执行。 【标签】:“自己写的PHP程序” 这个标签进一步强调了该程序的个人创作性质,可能...

Global site tag (gtag.js) - Google Analytics