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

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

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

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

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

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

那什么样的体验叫快呢?

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.mfbz.cn/a/459181.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

定力至上,穿越周期——哪吒汽车闯进国际大市场

近年来,全球气候变化和环境保护议题日益受到关注,环保意识逐渐深入人心。在这一背景下,新能源汽车作为一种低碳、环保的交通工具受到了广泛关注和青睐。各国纷纷加大对新能源汽车产业的支持力度,通过出台补贴政策、购车优惠以及充…

Linux学习之网络

目录 认识协议 网络协议初始 协议分层 OSI七层模型 TCP/IP的四层模型 数据包封装和分用 以太网通信 ip地址与MAC地址 网络编程套接字 端口号(port) 认识协议 网络字节序 socket接口 网络的产生是计算机历史的必然性,是计算机发展…

【闲聊】-后端框架发展史

框架,是为了解决系统复杂性,提升开发效率而产生的工具,主要服务于研发人员。 当然,框架还有更深层的作用,框架的沉淀是一种高级的抽象,会将人类的业务逐步抽象为统一标准又灵活可变的结构,为各行…

暴雨高性能分布式存储为AI提供坚实数据存力

随着两会的圆满落幕,新质生产力和人工智能的发展成为社会各界热议的焦点。总理在两会后的首次调研中,特别强调了新质生产力和人工智能的重要性,这无疑为人工智能产业的蓬勃发展注入了新的动力。 年初,Sora所引领的人工智能热潮更…

安卓百度地图API显示隐藏Marker

方法 BaiduMap.Marker.setVisible(boolean) 实现 List<Marker> list_marker new ArrayList<>(); boolean isShowMarker true;Override public boolean onCreateOptionsMenu(Menu menu) {String[] sm { "显隐信息", "显隐照片", "截…

YOLOv8_seg-Openvino和ONNXRuntime推理【CPU】

纯检测系列&#xff1a; YOLOv5-Openvino和ONNXRuntime推理【CPU】 YOLOv6-Openvino和ONNXRuntime推理【CPU】 YOLOv8-Openvino和ONNXRuntime推理【CPU】 YOLOv7-Openvino和ONNXRuntime推理【CPU】 YOLOv9-Openvino和ONNXRuntime推理【CPU】 跟踪系列&#xff1a; YOLOv5/6/7-O…

(二十五)Flask之MTVMVC架构模式Demo【重点:原生session使用及易错点!】

目录&#xff1a; 每篇前言&#xff1a;MTV&MVC构建一个基于MTV模式的Demo项目&#xff1a;蹦出一个问题&#xff1a; 每篇前言&#xff1a; &#x1f3c6;&#x1f3c6;作者介绍&#xff1a;【孤寒者】—CSDN全栈领域优质创作者、HDZ核心组成员、华为云享专家Python全栈领…

VScode 关闭鼠标悬停提示

设置-文本编辑&#xff0c;然后搜索&#xff1a;Hover:Enanbled,出现如下图&#xff0c;取消勾选即可&#xff1b;

2024常见性能测试工具!

一&#xff1a;如何选择性能工具 选择性能测试工具时&#xff0c;可以从以下几个方面进行考虑&#xff1a; 1. 需求匹配&#xff1a;首先要明确项目的具体需求&#xff0c;比如需要测试的应用类型、协议、负载规模等。确保所选工具能够满足这些需求。 2. 技术兼容性&#xf…

Vue3--数据和方法

data 组件的 data 选项是一个函数。Vue 在创建新组件实例的过程中会自动调用此函数。   data选项通常返回一个对象&#xff0c;然后 Vue 会通过响应性系统将其包裹起来&#xff0c;并以 $data 的形式存储在组件实例中。 <!DOCTYPE html> <html lang"en"&g…

已解决:android SDK安装时点击SDK Manager出现闪退

1、首先确保电脑里边安装了JDK&#xff0c;并且要把安装路径配置在环境变量里边&#xff0c;避免使用绝对路径 推荐%JAVA_HOME%\bin 2、在C:\Users\huanhuan\Desktop\android-sdk-windows\tools路径下找到android.bat文件打开&#xff0c;把set java_exe后改为jdk中java.exe的路…

孪生网络(Siamese Network)和数字孪生的区别?

1. 孪生网络 孪生网络是一种特殊的网络框架&#xff0c;基于两个人工神经网络建立的耦合构架&#xff0c;通过比较两个样本在高维度空间的表征来判断它们的相似程度。它包含两个相同结构的神经网络&#xff0c;一个用于学习&#xff0c;一个用于验证学习效果。在训练过程中&am…

【火猫TV】欧联:8强无弱队,意甲英超球队扎堆,利物浦和药厂优势很大!

2023-2024欧联杯八强正式出炉&#xff0c;马赛、本菲卡、勒沃库森、利物浦、西汉姆联、罗马、亚特兰大和AC米兰成功拿到了晋级名额&#xff0c;于是球迷们即将看到近20年竞争最激烈的欧联杯八强对决。虽然这些队伍实力有强有弱&#xff0c;但是能够拼到现在的球队没有弱旅&…

20240304 json可以包含复杂数组(数组里面套数组)

欣赏一下我的思维&#xff0c;它会以漫画&#xff0c;表格&#xff0c;文字。。。各种各样的形式呈现 对于问题1问题2 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式&#xff0c;易于人阅读和编写&#xff0c;同时也易于机器解析和生成。JSON本质上是一种文本…

鸿蒙实战开发:【分布式软总线组件】

简介 现实中多设备间通信方式多种多样(WIFI、蓝牙等)&#xff0c;不同的通信方式使用差异大&#xff0c;导致通信问题多&#xff1b;同时还面临设备间通信链路的融合共享和冲突无法处理等挑战。分布式软总线实现近场设备间统一的分布式通信管理能力&#xff0c;提供不区分链路…

鸿蒙开发面试真题分享~

1. 在鸿蒙应用开发中&#xff0c;有哪些常用的性能优化策略和技术手段&#xff0c;如启动速度优化、内存管理优化、功耗控制等&#xff1f; 参考答案&#xff1a; 2. 鸿蒙系统强调跨平台特性&#xff0c;你会如何利用这一特性来优化多端部署和适配&#xff1f; 参考答案&…

Android 音频系统

导入 早期Linux版本采用的是OSS框架&#xff0c;它也是Unix及类Unix系统中广泛使用的一种音频体系。 ALSA是Linux社区为了取代OSS而提出的一种框架&#xff0c;是一个源代码完全开放的系统(遵循GNU GPL和GNU LGPL)。ALSA在Kernel 2.5版本中被正式引入后&#xff0c;OSS就逐步…

力扣111---二叉树的最小深度(简单题,Java,递归+非递归)

目录 题目描述&#xff1a; &#xff08;递归&#xff09;代码&#xff1a; &#xff08;非递归、层次遍历&#xff09;代码&#xff1a; 题目描述&#xff1a; 给定一个二叉树&#xff0c;找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Panel)

可滑动面板&#xff0c;提供一种轻量的内容展示窗口&#xff0c;方便在不同尺寸中切换。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 可以包含子组件。 说明&#xff1a; 子组件类型&a…

phpcms上传漏洞

原始漏洞 漏洞原理&#xff1a;我们上传一个zip的压缩包&#xff0c;它会解压然后删除其中不是.jpg .gig .png的文件 function check_dir($dir)&#xff1a;这是一个PHP函数的定义&#xff0c;它接受一个参数 $dir&#xff0c;代表要检查的目录路径。 $handle opendir($dir)…