PHP项目性能优化的三个层次
- PHP语言层级
- PHP周边(服务器,数据库,webserver)
- PHP底层
语言层级
- 尽量使用PHP原生函数和常量,类
如果要实现的功能有原生PHP函数,则不要自己用PHP实现
- 尽量使用性能更高的内置函数
比如isset和array_key_exists都可以使用,则使用isset
- 尽量不要使用错误抑制符@
- 不要使用PHP处理cpu密集的业务,交给适合的语言去处理
- 减少io操作,比如在一次请求中要生成多条日志,则尽量缓存一次写入
- 代码尽量向上兼容,即尽可能的使用PHP最新版本,比如generaotr实现的range等,数组短语法
周边(展开则相当庞大了)
- Linux内核优化,硬件提升(ssd硬盘,加内存)
- 减少跨网络请求
- MySQL 索引使用,NoSQL+MySQL的配合使用,MySQL主从等
- Nginx 的配置优化
- PHP-FPM配置优化
- 使用PHP的最新版本,目前PHP 5.6,今年即将会来的PHPNG(PHP7)
- 使用xhprof分析项目源码,找出瓶颈进行优化
这部分内容需要继续学习研究
PHP底层
- 使用opcode扩展 缓存PHP的opcode代码,减少PHP的编译过程
- CPU密集或者复杂功能使用PHP的pecl扩展(swoole等优秀扩展的使用)
- HHVM,百度再用,不过还是让我们坐等PHPNG的问世,有PHPNG,HHVM就不是必须的选择了
当然良好的编码风格(目前PSR很流行 http://www.php-fig.org/),优雅的代码实现也非常重要
写代码,不要仅仅为了实现目的和功能,还要有诗人的情怀,尽量打磨代码,精炼,如贾岛之推敲,追求自己代码的卓越
随着项目的发展,就会有架构方面的变更,来应对更大的并发和请求