php性能优化学习笔记
编写代码
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
php性能优化学习笔记的更多相关文章
- Pandas 性能优化 学习笔记
摘要 本文介绍了使用 Pandas 进行数据挖掘时常用的加速技巧. 实验环境 import numpy as np import pandas as pd print(np.__version__) ...
- KVM性能优化学习笔记
本学习笔记系列都是采用CentOS6.x操作系统,KVM虚拟机的管理也是采用virsh方式,网上的很多的文章都基于ubuntu高版本内核下,KVM的一些新的特性支持更好,本文只是记录了CentOS6. ...
- 深挖计算机基础:Linux性能优化学习笔记
参考极客时间专栏<Linux性能优化实战>学习笔记 一.CPU性能:13讲 Linux性能优化实战学习笔记:第二讲 Linux性能优化实战学习笔记:第三讲 Linux性能优化实战学习笔记: ...
- mysql性能优化学习笔记-参数介绍及优化建议
MySQL服务器参数介绍 mysql参数介绍(客户端中执行),尽量只修改session级别的参数. 全局参数(新连接的session才会生效,原有已经连接的session不生效) set global ...
- mysql性能优化学习笔记
mysql性能优化 硬件对数据库的影响 CPU资源和可用内存大小 服务器硬件对mysql性能的影响 我们的应用是CPU密集型? 我们的应用的并发量如何? 数量比频率更好 64位使用32位的服务器版本 ...
- js性能优化--学习笔记
<高性能网站建设进阶指南>: 1.使用局部变量,避免深入作用域查找,局部变量是读写速度最快的:把函数中使用次数超过一次的对象属性和数组存储为局部变量是一个好方法:比如for循环中的.len ...
- mysql性能优化学习笔记(1)优化目的、方向及数据库准备
前言: 最近参加面试,问到了很多关于mysql的优化方面的问题,回答的不是很好,也是因为原先做的项目流量不是很大,所以对mysql优化不是太了解,所以趁着周末,恶补一下. 本文来源于慕课网sqlerc ...
- Java性能优化学习笔记
1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 第一,控制资源的使用,通过线程同步来控 ...
- PHP性能优化学习笔记--PHP周边性能优化--来自慕课网Pangee http://www.imooc.com/learn/205
PHP一般运行于Linux服务器中,周边主要包括:Linux运行环境.文件存储.数据库.缓存.网络 常见PHP场景的开销次序: 读写内存<<读写数据库(使用内存作为缓存.异步处理)< ...
随机推荐
- java定时器无法自动注入的问题解析(原来Spring定时器可以这样注入service)
近些日子在做一个项目,在项目中需要用到spring的定时任务,但是在操作数据库的时候发现总是不能正确的进行数据的插入,经过查看才发现:是因为service层不能够通过普通的方法注入到action,所以 ...
- 浅谈一致性Hash原理及应用
在讲一致性Hash之前我们先来讨论一个问题. 问题:现在有亿级用户,每日产生千万级订单,如何将订单进行分片分表? 小A:我们可以按照手机号的尾数进行分片,同一个尾数的手机号写入同一片/同一表中. 大佬 ...
- 《DSP using MATLAB》Problem 2.4
生成并用stem函数画出这几个序列. 1.代码: %% ------------------------------------------------------------------------ ...
- 使用树莓派制作一套“NAS+私有云盘+下载机”
原创作者:HackLiu 0×00 前言 如果你家里有多台设备需要联网需要娱乐,你一定会或多或少遇到设备碎片化带来的烦恼.当然,已经有很多厂商包括新晋的小米.360在内的互联网公司 ...
- java 输出helloword
1,安装jdk;2,配置环境变量;3,新建D:/Test.java文件;4,文件内容如下:public class Test{ public static void main(String[] arg ...
- WinForm各浏览器内核控件
WebKit.NET webkit-sharp CefSharp awesomium OpenWebKitSharp geckofx MozNet Web Component
- Bootstrap-Plugin:下拉菜单(Dropdown)插件
ylbtech-Bootstrap-Plugin:下拉菜单(Dropdown)插件 1.返回顶部 1. Bootstrap 下拉菜单(Dropdown)插件 Bootstrap 下拉菜单 这一章讲解了 ...
- Chrome经常新标签页打开http://destyy.com/qNHR3u
经常新标签页打开http://destyy.com/qNHR3u网址. 在历史记录里查询 chrome://history/?q=destyy.com ,发现最早访问是25日10点34分05.貌似那个 ...
- thinkPHP使用函数时字符串中不能含有管道符”|“,否则报错;
如 {$data.name|str_repeat="|",###}报错!!!
- C#中的参数关键字params
class 参数 { public void doSome(string str,params int[] values){ ) { ; i < values.Length; i++) { Co ...
