专栏首页开发 & 运维分享学习PHP性能优化正式篇(一)
原创

学习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 条评论
登录 后参与评论

相关文章

  • Kubernetes的服务网格(第3部分):加密一切数据

    在本文中,我们将向您展示如何使用linkerd作为服务网格,将TLS添加到所有服务到服务的HTTP调用中,而不用修改任何应用程序代码。

    Hi胡瀚
  • Zookeeper学习—— 简介

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为...

    Hi胡瀚
  • 五分钟在笔记本上快速部署容器应用

    按照以下步骤设置Nirmata并部署容器应用:

    Hi胡瀚
  • 突破Java面试(45)-高并发系统的架构设计

    所以如果你确实有真才实学,在互联网公司里干过高并发系统,那你确实拿offer基本如探囊取物,没啥问题。

    JavaEdge
  • Python 高级并发

    就是直接用『原子操作』(atomic operation)所实现的并发。这种并发是给程序库的编写者用的, 而应用程序开发者则不需要它,因为这种写法很容易出错,而...

    用户1416054
  • 聊聊面试中关于并发问题的应对方案

    技术zhai
  • 百度压测,分析性能拐点

    空闲之余用jmeter对百度进行了一次压测,目的是分析一下性能的拐点,验证一下理论知识

    飞天小子
  • Flink1.4 并发执行

    本节介绍如何在Flink中配置程序的并行执行。一个Flink程序由多个任务(transformations/operators,data sources和sin...

    smartsi
  • 到底什么级别才算是高并发?

    https://segmentfault.com/a/1190000010844969

    Java技术栈
  • Web开发中说高并发的时候,我们在说什么

    大家先心里仔细想想,当你们听到高并发网站时,心里对这个网站是个什么概念?首先想到的是淘宝吗?带着问题,我们一起思考技术

    大愚

扫码关注云+社区

领取腾讯云代金券