当前位置: 首页 > news >正文

项目性能优化—性能优化的指标、目标

项目性能优化—性能优化的指标、目标

性能优化的终极目标是什么

性能优化的目标实际上是为了更好的用户体验:

一般我们认为用户体验是下面的公式:

用户体验 = 产品设计(非技术)+ 系统性能 ≈ 系统性能 = 快

那什么样的体验叫快呢?

3秒定理

一般我们认为网站页面的加载速度在3秒以内就可以称作合格了,加载速度越趋近于0,越快。

3秒定理:Strangeloop在对比了众多网站,并对其性能进行分析之后得出了一个著名的3秒定理,当网站页面加载速度超过3秒后,57%的访客会离开这个网站。

如果想让我们的系统快起来,就要做性能调优。

项目性能优化

以下可以做为优化的标准:

  • 前端工程师:首屏时间、白屏时间、可交互时间、完全加载时间;
  • 移动端工程师:端到端响应时间、Crash率、内存使用率、FPS;
  • 后端工程师:RT、TPS、并发数。
    • 影响因素1:数据库读写、RPC、网络IO、逻辑计算复杂度、缓存
    • 影响因素2:JVM[Throughput吞吐量、Footprint访存足迹、Latency延迟]

影响性能的关键要素

  • 产品设计:产品逻辑、功能交互、动态效果、页面元素
  • 基础网络:网络=连接介质+计算终端
  • 代码质量&架构
  • 移动端环境:设备类型&性能、网络
  • 硬件及云服务:服务器硬件等

我们怎么去分析性能因素呢,就是既不要去做过度的优化,也不要让某个内容作为短板。

我们怎么找到系统的短板在哪里呢?就是需要进行压力测试。

压力测试

什么是压力测试

压力测试:压力测试是针对特定系统或者组件,为要确认其稳定性而特意进行的严格测试。会让系统在超过正常使用条件下运作,然后再确认其结果。

实际上就是对系统不断施加压力,来预估系统负载能力的一种测试。

什么时候做压测

一般而言,只要在系统基础功能验证完成、系统趋于稳定的情况下,才会进行压力测试。

压测目的

  1. 当负载逐渐增加时,观察系统各项性能指标的变化情况是否有异常;
  2. 发现系统的性能短板,进行针对性的性能优化;
  3. 判断系统在高并发情况下是否会报错,进程是否会挂掉;
  4. 测试在系统某个方面达到瓶颈时,粗略估计系统性能的上限;

压测的指标

指标含义
响应时间(RT)是指系统对请求作出响应的平均时间,对于单用户系统,响应时间可以很好地度量系统的性能。
吞吐量(Throughput)是指系统在单位时间内处理请求的数量每秒事务数TPS也算是吞吐量的一种
资源利用率CPU占用率、内存使用率、系统负载、网络I/O
并发用户数是指系统可以同时承载的正常使用系统功能的用户的数量,用户不同的使用模式会导致不同用户在单位时间发出不同数量的请求。
错误率失败请求占比,在测试时添加响应断言,验证不通过记为错误;若不添加,响应码为非200即为错误。

响应时间、并发用户数、吞吐量、资源使用率存在一定关系,如下图:

 响应时间、并发用户数、吞吐量、资源使用率关系图

图的解释:

线走势:
  • 绿线:随着用户增长,资源利用率会提升;

  • 紫线:随着用户增长,吞吐量会上升,然后下降;

  • 蓝线:随着用户增长,响应时间的变化趋势;

区域

图中有三个区域:轻负载区、重负载区、塌陷区。

两个横坐标点

第一条虚线的横坐标:最优并发用户数;

第二条虚线的横坐标:最大并发用户数。

http://www.lryc.cn/news/318408.html

相关文章:

  • 蓝桥杯刷题(三)
  • 20240312-算法复习打卡day21||● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● 236. 二叉树的最近公共祖先
  • 今天我们来学习一下关于MySQL数据库
  • 长期护理保险可改善老年人心理健康 | CHARLS CLHLS CFPS 公共数据库周报(3.6)...
  • 49、C++/友元、常成员函数和常对象、运算符重载学习20240314
  • SQL Server错误:15404
  • Halcon文件操作
  • 【测试知识】业务面试问答突击版1
  • 使用el-row及el-col页面缩放时出现空行解决方案
  • java中几种对象存储(文件存储)中间件的介绍
  • 网络工程师——2024自学
  • SwiftUI的Picker
  • 物联网技术助力智慧城市转型升级:智能、高效、可持续
  • YOLOv7_pose-Openvino和ONNXRuntime推理【CPU】
  • 通过ACPI检测沙箱-反虚拟机
  • 计算点集的最小外接矩形——OpenCV的minAreaRect函数
  • Stripe Web 购买集成
  • 加密货币在网络违法犯罪活动中的利用情况调查
  • 【测试知识】业务面试问答突击版3---bug、测试用例设计
  • 使用大型语言模型进行实体提取
  • 基础:TCP是什么?
  • el-table中 el-popover 性能优化
  • java数据结构与算法刷题-----LeetCode46. 全排列
  • 听说过Nginx反向代理,那正向代理是什么?
  • 实现elasticsearch和数据库的数据同步
  • SwiftUI的Alert使用方式
  • FPGA高端项目:FPGA基于GS2971的SDI视频接收+GTX 8b/10b编解码SFP光口传输,提供2套工程源码和技术支持
  • 【源码编译】Apache SeaTunnel-Web 适配最新2.3.4版本教程
  • 数据集下载
  • 3、设计模式之工厂模式2(Factory)