编写代码

1.尽可能多的使用内置函数
2.比对内置函数的时间复杂度,选择复杂度低的 比如 循环20万次-测试isset 和 array_key_exists 耗时
对比isset.php , array_key_exists.php
3.尽可能少用魔法函数
对比__get.php no__get.php
4.最好不用@错误抑制符号
查看at.php , 利用vlb扩展查看opcode
 cli: php -dvld.active=1 -dvld.execute=0 at.php 查看opcode

 //观察下面2行的opcode
file_get_contents('1.txt');
@file_get_contents('1.txt'); //opcode 多了些逻辑 
5.合理使用内存和正则表达式
利用unset()及时释放不适用的内存,尽量少用正则表达式
6.减少计算密集业务
大数据计算,日志分析等
7.务必使用带引号字符串做键值
查看arr.php
 <?php
//define('key','imooc');
$arr = [
'key'=>'hello',
'imooc'=>'http://www.imooc.com/'
]; echo $arr[key];
/*
key没加引号
key首先会去寻找 常量key,如果有则取常量key的值,然后取回数组对应的值。
如果没找到,则解析成数组内部键
*/ 
8. php周边问题的性能优化
linx服务器优化,文件存储,内存缓存,网络
减少网络请求:
a.可以使用curl_multi_*()
b.使用swoole扩展  9.php做接口, 压缩php接口输出 如gzip
利:有利于client端更快接收数据;
弊:额外的cpu开销
结论:小于几十kb压缩效果不好,大于100k可以尝试 10. 利用xhprof性能测试
查看xhprof.php
参考: http://avnpc.com/pages/profiler-php-performance-online-by-xhprof
 <?php
//参照 xhprof项目里的 example/simple.php #开启
xhprof_enable(); #脚本执行完
register_shutdown_function(function(){ $data = xhprof_disable(); require 'xhprof_lib/utils/xhprof_lib.php';
require 'xhprof_lib/utils/xhprof_runs.php'; //生成分析文件
$obj = new XHProfRuns_Default();
$run_id = $obj->save_run($data,'test');
var_dump($run_id); });
11. 开启opcache
php执行流程
1 *.php脚本被底层的zend引擎逐行扫描分析 保存成zend自己能识别的语法
2 zend自己能识别的语法然后再被解析成opcodes (最终将要被执行的代码)
3 最后执行opcodes 输出
   附上php执行流程图
  

  文中提到文件下载:http://files.cnblogs.com/files/loveyouyou616/yh.zip

 

最新文章

  1. Spark实战1:shell+独立App使用总结
  2. BZOJ 3752 世界树
  3. THINKPHP 清除HTML注释、换行符、空格、制表符等
  4. IDE模式下安装Windows 7强行改回ACHI后不断重启的解决方法
  5. Struts2 Spring Hibernate Ajax Java总结(实时更新)
  6. java中的Unicode中文转义
  7. 【canvas系列】canvas实现&quot;雷达扫描&quot;效果
  8. VS2015 &#39;utf-8&#39; codec can&#39;t decode byte
  9. 【计算机网络】 一个小白的DNS学习笔记
  10. 处理MySQL服务器无法启动的问题
  11. 【玩转树莓派】使用 sinopia 搭建私有 npm 服务器
  12. C# — 创建Windows服务进阶版
  13. python-django(环境配置)
  14. MMIO----Wav格式文件解析
  15. SQL语句(九)使用特殊关系运算符查询
  16. Python的多线程技巧
  17. python中如何对list之间求交集,并集和差集
  18. inline函数的总结
  19. freemarker${}包含${}
  20. garylog学习篇

热门文章

  1. promise的基础知识
  2. hdu 3613 Best Reward
  3. DesignPattern(五)行为型模式(上)
  4. 《DSP using MATLAB》Problem 3.1
  5. (考研)PV操作和信号量
  6. fb远程连接服务器调试,碉堡了
  7. cocostudio 使用教程
  8. 获取bing带swim的网址列表
  9. angularJS的ng-repeat-start
  10. Haroopad安装与配置: Linux系统下最好用的Markdown编辑器