学习PHP性能优化正式篇(一)

PHP性能

首先我们要先了解到如何判断一个的性能上限是多少,这就为我们引入了压测工具的了解和使用,常用的压测工具当然就是Apache 开源基金会的 ab工具了。

性能指标

在我们使用和了解ab工具前要先了解几个概念

吞吐率(Throughput)

概念:服务器并发处理能力一个量化参数,单位是reqs/s,在没有并发的系统中,我们会发现其实吞吐量和响应时间成严格的反比,目前的并发系统并不能单纯的用响应时间作为性能衡量的标准,而应该以吞吐量作为指标进行评估。这是因为在多用户系统中,用户数和响应时间并不成正比,一个用户的响应时间是t,n个用户的总响应时间一般是小于 n*t 的,这也是为什么用吞吐量作为量化指标。

计算公式:总请求数 / 处理完成这些请求数所花费的时间,即

Request per second = Complete requests / Time taken for tests

并发连接数(The number of concurrent connections)

概念:并发连接数指的是客户端向服务器发起请求,并建立了TCP连接。每秒钟服务器链接的总TCP数量,就是并发连接数。

ab工具的由来

根据官方的一段描述

ab是Apache超文本传输协议(HTTP)的性能测试工具。其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求

性能测试怎么测

一般我们会测试上述的两个性能指标,吞吐量和并发量。

并发量测试: 采用一个并发只一个请求,多并发同时进行

吞吐量测试: 采用固定并发数,每个并发多规格的请求数作为测试方式。建议测完一组同并发不同请求数的数据测完后,再变更并发数的大小,一般是从100,1000,10000这样递增的并发数测试

ab工具的使用

/path/to/bin/ab  -n1000 -c100 http://test.domain

我们先看下上面的工具常用参数。

第一列就是ab工具的二进制文件路径,linux一般都是在/usr/bin/或者/usr/local/bin目录下。

第二列就是指定每个并发的请求数

第三列就是指定测试的并发数

第四列就是指定测试的域名

image.png

PHP语言级别性能优化

优化点:

一、自己编写的功能性代码,可以使用PHP自有函数替代。

二、PHP自有函数间的性能优化

  isset()和array_key_exists()方法之间的性能差异

三、 PHP魔法函数性能不佳

__get() 魔术方法的使用

四、 产生额外开销的错误抑制符@

  描述,PHP提供的方便“懒人”的错误抑制符
 在代码前和后,增加opcode,忽略报错
  工具:vld可以看opcode的执行过程

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏后端云

Openstack两个容易混淆的概念

az是在region范围内的再次切分,只是工程上的独立,例如可以把一个机架上的机器划分在一个az中,划分az是为了提高容灾性和提供廉价的隔离服务。选择不同的re...

1934
来自专栏数据和云

故障诊断 | 存储Cache丢失导致数据库无法open的案例分享

当存储Cache由于丢失时,我们应该如何处理,让数据库重新能够open起来呢?让我们听听,云和恩墨 ACE 李真旭分享的这篇案例。 发现问题 最近某客户的一套核...

3398
来自专栏老安的博客

docker 容积硬盘扩容小坑一个

1353
来自专栏大数据和云计算技术

HBase2.0 vs HBase1.x 延时比较

hbase2.0已经正式发布,对比之前1.x版本,2.0在读写链路上做了完善的优化,offheap、netty rpc等,这里做个小测试实验对比1.x和2.0在...

1483
来自专栏程序员宝库

每个系统管理员都要知道的 30 个 Linux 系统监控工具

? 您需要监控 Linux 服务器的性能吗?试试用这些内置命令和附加工具吧!大多数 Linux 发行版都附带了大量的监控工具。这些工具提供了获取系统活动的相关...

5059
来自专栏云飞学编程

喜欢用Python做爬虫吗?进度条了解下?自制一个进度条模块!

我们在做Python爬虫脚本的时候,往往希望在运行的过程中可以实时查看到我的下载进度!之前我也一直想实现这个功能(绝对不是为了炫(装)耀(*)),也查看了很多博...

1471
来自专栏Laoqi's Linux运维专列

自动化监控Zabbix之主机自动发现

1813
来自专栏owent

对象路由系统设计

现在的手游也开始越来越复杂,以前少量交互线上保存的服务器架构越来越不能满足现在越来越偏向PC端MMORPG的需求。比如现在手游也引入了地图服务、公会服务等等。特...

881
来自专栏后端技术探索

分布式系统一致性问题解决实战

商户提交表单数据至旺铺(deco项目,以下皆称为deco),deco需要接入poi系统进行装修内容的人工审核,详细流程见下图。

1112
来自专栏marsggbo

coursera 视频总是缓冲或者无法观看的解决办法

注意!!!该方法针对Windows用户,亲测有效。 1.用管理员权限记事本打开host文件 2.将如下内容复制到文件末尾 52.84.246.90 ...

2195

扫码关注云+社区