前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学习PHP性能优化正式篇(一)

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

原创
作者头像
Hi胡瀚
修改2018-11-06 22:28:49
5180
修改2018-11-06 22:28:49
举报
文章被收录于专栏:开发 & 运维分享

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工具的使用

代码语言:txt
复制
/path/to/bin/ab  -n1000 -c100 http://test.domain

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

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

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

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

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

image.png
image.png

PHP语言级别性能优化

优化点:

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

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

代码语言:txt
复制
  isset()和array_key_exists()方法之间的性能差异

三、 PHP魔法函数性能不佳

代码语言:txt
复制
__get() 魔术方法的使用

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

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • PHP性能
  • 性能指标
    • 吞吐率(Throughput)
      • 并发连接数(The number of concurrent connections)
      • ab工具的由来
      • 性能测试怎么测
      • ab工具的使用
      • PHP语言级别性能优化
      相关产品与服务
      云服务器
      云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档