php性能优化
来源:互联网 发布:怎样修改手机游戏数据 编辑:程序博客网 时间:2024/06/06 13:08
一直对php性能优化方面挺感兴趣,整理下我所知道的与大家分享。
首先得知道影响性能的因素:
- Web服务器
- 并发处理能力
- 高负载的能力
- 负载均衡的能力
- 动态内容与静态内容的处理能力
- Web 服务器部署
- DataBase 服务器
- 并发访问
- 数据库服务器的部署
- 数据库的 shema 架构与的表设计是否合理
- 数据检索
- 程序/语言
关于web服务器和db优化,网上有很多大神的文章可供参考,这里只谈作为一个程序员,在编码的时候就应该注意的地方:
1. 用单引号代替双引号来包含字符串。
2. 如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。
* static 的属性和方法,只能访问static的属性和方法,不能类访问非静态的属性和方法。因为静态属性和方法被创建时,可能还没有任何这个类的实例可以被调用。
3. $row['id'] 的速度是$row[id]的7倍。
4. echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。
5. 在执行for循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用foreach代替。
6. 注销那些不用的变量尤其是大数组,以便释放内存。
7. 如果你想知道脚本开始执行(译注:即服务器端收到客户端请求)的时刻,使用$_SERVER[‘REQUEST_TIME']要好于time()。
8. str_replace函数比preg_replace函数快,但strtr函数的效率是str_replace函数的四倍。
* strtr跟字符长度有关系的,但是str_replace就没有关系。
9. 用@屏蔽错误消息的做法非常低效,极其低效。
10. 打开apache的mod_deflate模块,可以提高网页的浏览速度。
11. mod_zip可作为Apache模块,用来即时压缩你的数据,并可让数据传输量降低 80%。
12. 数据库连接当使用完毕时应关掉,不要用长连接(任何时间记住关闭不需要的数据库连接)。
13. 递增一个未预定义的局部变量要比递增一个预定义的局部变量慢9至10倍。
14. 派生类中的方法运行起来要快于在基类中定义的同样的方法。
15. Apache解析一个PHP脚本的时间要比解析一个静态HTML页面慢2至10倍。尽量多用静态HTML页面,少用脚本。
16. 除非脚本可以缓存,否则每次调用时都会重新编译一次。引入一套PHP缓存机制通常可以提升25%至100%的性能,以免除编译开销。
17. 尽量做缓存,可使用memcached。memcached是一款高性能的内存对象缓存系统,可用来加速动态Web应用程序,减轻数据库负载。对运算码 (OP code)的缓存很有用,使得脚本不必为每个请求做重新编译。
18. 当执行变量$i的递增或递减时,$i++会比++$i慢一些。这种差异是PHP特有的,并不适用于其他语言。
19. 多维数组尽量不要循环嵌套赋值。
20. 对global变量,应该用完就unset()掉。
21. 在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情况下,尽量用file_get_contents,因为他的效率高得多!但是要注意file_get_contents在打开一个URL文件时候的PHP版本问题。
0 0
- 关于PHP性能优化
- Lighttpd+PHP性能优化
- PHP性能优化
- PHP的性能优化
- php性能优化技巧
- PHP.ini 性能优化
- PHP 性能优化技巧
- php 性能优化
- PHP 性能优化技巧
- PHP 性能优化技巧
- PHP.ini 性能优化
- PHP性能优化总结
- PHP 性能 优化 缓存
- 优化php性能
- PHP性能优化
- PHP.ini 性能优化
- PHP 性能优化技巧
- PHP 性能优化技巧
- App Store审核指南中文版(2014.9.10更新):新增Apple Pay相关内容
- Ubuntu下eclipse创建maven项目报错解决办法
- android USB OTG功能实现
- Sublime Text 2 快捷键
- Android中Uri的使用
- php性能优化
- JavaWEB应用的消息推送功能:comet4j
- 二分查找算法的递归与非递归实现
- Testing with Xcode文档
- struts2 no extension(excludePattern)
- android 不打开Shared sdcard功能,内置SD卡中预制资源,删除资源,恢复出厂设置恢复
- onvif规范的实现:使用gSOAP创建SOAP调用实例
- 什么是好技术
- plsql 如何设置自动替换文本 的经验方法