PHP性能优化学习笔记--语言级性能优化--来自慕课网Pangee http://www.imooc.com/learn/205

使用ab进行压力测试

  ab -n行数 -c并发数 url

  重点关注下面两点:

  1、Request per secend : 每秒可接收的请求数

  2、Time per request : 每次请求所耗费的时间

优化1、多使用PHP自身的功能(如PHP定义的函数、常量),尽量少自己造轮子,自己写的代码冗余较多,可读性不高,且性能低下

    PHP每次接受请求后,都会进行编译成底层语言,C->汇编->机器语言,同时接受大量请求,每个请求都会执行一次编译

  示例代码如下:

bad.php                              

             

goods.php

          

可以实现同一功能,使用php自带的函数性能提高了很多倍;

PHP执行流程(参考 http://www.jb51.net/article/74907.htm  ||  http://www.cnblogs.com/hongfei/archive/2012/06/12/2547119.html  ||  http://www.2cto.com/kf/201404/290863.html)

优化二:

  PHP内置函数的性能差异,PHP内置函数实现同一功能,已然存在性能差异,最好的办法是比较它们的时间复杂度

  比如isset的性能优于array_key_exists

优化三:

  尽可能少的使用魔法函数

  PHP模仿函数性能不佳,尽可能规避

优化四:

  尽量不使用错误运算抑制符@

  @的实际逻辑是在@作用代码开始前,增加Opcode,也就是error_report等级设为忽略报错,在代码结束后,将报错等级恢复;

  开启vld扩展可以dumps all the opcodes,用来查看opcodes

优化五:

  合理使用内存,虽然PHP有内存回收机制,但也要小心使用,利用unset函数及时释放不适用的内存

优化六:

  尽量少的使用正则表达式,正则表达式的回溯开销较大,建议利用字符串处理函数,实现相同的逻辑

优化七:避免在循环内做运算,代码如下:

      

优化八:

  减少计算密集型业务,PHP不适合做大数据量的运算,适合衔接Webserver与后端服务,如db、cache等,适合UI呈现;

  

时间: 2024-10-26 22:56:02

PHP性能优化学习笔记--语言级性能优化--来自慕课网Pangee http://www.imooc.com/learn/205的相关文章

PHP性能优化学习笔记--PHP周边性能优化--来自慕课网Pangee http://www.imooc.com/learn/205

PHP一般运行于Linux服务器中,周边主要包括:Linux运行环境.文件存储.数据库.缓存.网络 常见PHP场景的开销次序: 读写内存<<读写数据库(使用内存作为缓存.异步处理)<<读写磁盘<<读写网络数据(网络延迟) 尽量操作内存和数据库,避免操作磁盘和网络数据,一定要避免读取大文件 一.优化网络请求: 可能存在的问题: 1.对方接口的不确定性因素 2.网络稳定性 优化网络请求措施: 1.设置超时时间(数字可以根据自己项目实际情况进行调整) a.连接超时:200ms

mysql性能优化学习笔记(1)优化目的、方向及数据库准备

前言: 最近参加面试,问到了很多关于mysql的优化方面的问题,回答的不是很好,也是因为原先做的项目流量不是很大,所以对mysql优化不是太了解,所以趁着周末,恶补一下. 本文来源于慕课网sqlercn老师所讲的<性能优化之mysql优化>,根据老师所讲的内容整理所得. 一.为什么需要优化mysql数据库  1.避免出现页面访问错误          由于数据库连接超时产生的5xx错误          由于慢查询造成页面无法加载          由于阻塞造成数据无法提交       2.增

Web应用程序性能优化学习笔记

Web应用程序性能优化学习笔记 1. 使用瀑布图初步诊断网站性能瓶颈 一般来说,打开一个网页的速度会受到以下几项的影响: 1) 服务器花了太长的时间将.aspx页面的内容转化为html. 2) .aspx页面花了太长的时间从服务器端将内容发送到客户端. 3) 页面上的图片或者flash文件花了太长的时间从服务器端发送到客户端. 4) JavaScript和CSS文件阻塞页面渲染. 我们可以使用“瀑布图”来确定一个页面的性能问题是由于哪一项造成的.FireBug.Chrome自带的“开发人员工具”

Jmeter进阶学习笔记(对性能、接口测试的进阶学习)

1.在进行测试的时候,可以采用fildler进行捕捉:如果需要在手机上操作的话,可在fildler option设置下,然后再手机的wifi中设置代理即可: 1.登录测试 登录的话,肯定是存在两个参数的,用户名与密码,且使用的方法应是Post; PS:登录此处还可以使用断言去判断是否登录正确: 2.获取列表系统(可以看下加载此列表需要多少时间),使用的get方法即可: 3.在列表中选择某一条记录进行发送信息操作(如果10万用户都同时发送信息,服务器是否正常工作): ...... 未完待续~ Jm

kvm虚拟化学习笔记(二十一)之KVM性能优化学习笔记

本学习笔记系列都是采用CentOS6.x操作系统,KVM虚拟机的管理也是采用virsh方式,网上的很多的文章都基于ubuntu高版本内核下,KVM的一些新的特性支持更好,本文只是记录了CentOS6.x系列操作系统下KVM优化的点,有很多都是默认支持开启了的,除了采用virtio方式的磁盘IO,与网络IO接口优化之外,其它真是无需太多优化. 1. CPU性能优化 (1) 服务器或宿主机主板BIOS中开启Intel Virtualization Technology(简称VT), 如果主板支持In

php 性能优化之php 语言级的性能优化一

对于这个问题首先我们要知道影响php的性能的原因是什么?也就是 1 什么情况下会出现php性能问题? 1php语法使用不当(包括某些业务可以使用php 本身自带的函数来处理) 2使用php语言做了它不擅长的事 3用php语言链接的服务器不给力(当然如果是localhost也就是你本地配置比较差哈,建议换本吧,哈哈) 4php自身的短板 (PHP 自身就做不了) 5我们也不知道的问题 (囧)   2 php 性能问题简介之php的性能问题的解决方向 从困难度由浅到深分别为: 1 Php 语言级的性

数据库学习 - 大规模并发优化学习笔记

大规模并发 优化服务器配置 使用负载均衡 数据库结构设计 中间件优化 数据缓存使用 数据库高并发 数据库并发策略 数据库设计建议 表设计的具体问题 查询优化 注意事项 算法优化 大规模并发 当网站有很多人访问的时候,并发量增大,这个时候我们所设计的网站就会遇到挑战.很多本来是没有问题的设计,这个时候可能就会暴露出问题了. 就像宏观物理定理不适合微观一样. 下面是一些优化的建议方法. 优化服务器配置 这个是在硬件上提升服务器,因为任何软件上的优化都是有瓶颈和极限的,所以提高服务器数量和配置是比较简

web前端之网站seo优化学习笔记

这两天因为一些公司业务上的原因,学习了一些关于网站seo优化的方法和技巧. 之前在码代码的过程中其实还没有考虑过对于网站导流和优化网站关键字搜索排名的问题. 在了解了一些这方面的资料之后,觉得这是一个很有意思的领域.把这几天的学习笔记记下来. 个人理解是在一个项目基本上完成主要需求后需要运营需求加入的时候,此时seo优化就非常重要.所以在网站开发的最开始有经验的前端coder们在搭架子的时候就应该提前把以后运营汪们可能会提出的运营需求,特别是一些针对影响关键字排名和与搜索引擎相关的部分就可以考虑

一步一部学习Unity3d学习笔记系1.2 单机游戏和网游的数据验证概念

这一次的笔记的主要内容是单机和网游的数据存储,数据验证方式,在游戏的时候除了控制角色的行动,还涉及到用户角色的升级,经验,金钱赚取,道具购买,技能升级 等等一些数据的交易, 那么单机游戏和网游的区别如下如图: 单机购买流程: 单机游戏的数据存储都是在本地客户端存储的,验证简单,执行简单,在玩单机游戏的时候我想很多人都知道外挂是怎么回事吧没救是通过修改内存,或者是本地数据无敌,随时原地满血复活状态. 网游相对来说数据安全性就比较高了,前几年的网游还有外挂,比如说CF 开启外挂来直接枪枪爆头,隔墙爆