[架构之路-200]- 性能需求与性能分析:影响性能的主要因素

news2024/11/26 12:37:39

目录

前言:关于性能的几点说明

第一章 性能需求:提出各种性能指标

1.1 可靠性或可用性: stablity

1.2 处理能力或效率:  Performance

1.2.1 指标是吞吐率

1.2.2 指标是响应时间:

1.2.3 指标是资源利用率

1.3 高并发性

1.4 通信系统性能指标

1.4.1 信道传输速率

1.4.2 信道吞吐量:throughput

1.4.3 容量:Capacity

1.4.4 信道利用率

1.4.5 传输延迟

1.4.6 响应时间

1.4.7 负载能力(load)

第二章 性能分析:分析和细化影响性能需求的各种因素

第三章 系统设计:为高性能设计好系统架构

第四章 系统实现

第五章 系统测试:性能测试与评估

5.1 Linux系统性能评估的工具


前言:关于性能的几点说明

(1)性能需要是非功能性需求

(2)不同的信息系统比的是功能

(3)同行的信息系统比的是性能

(4)产品后期打磨的就是性能(性能提示曲线)

一开始性能提升容易,越往后,性能提升越难。


(5)性能的改进因素分布在系统的方面面面(性能分析框架)

(6)信息系统的性能从需求阶段就开始了,而不是在编码实现阶段才开始。

  • 客户需求:性能需求,提出各种性能指标
  • 系统分析:性能分析(最难),分析和细化影响性能需求的各种因素
  • 系统设计:为高性能设计好系统 架构
  • 系统实现:通过芯片设计、编程语言和代码编程来实现高性能信息系统。 
  • 系统测试:性能测试与评估

很多人在开发信息系统时,早期只关系功能,到了开发的后期才关心性能,导致花了大量人力、物力开发的系统,

  • 要么因为性能无法满足客户的需求,导致一直无法交付
  • 要么陷在现有框架下艰难的进行性能的改进和优化,项目交付一再推迟。
  • 要么导致推翻以前的软硬件架构,重新设计,造成前期大量的人力、物力、时间的浪费。

本文重点重点关注前期的性能需求和性能分析!!!

(7)性能目标的本质:多、快、好、省、低

 数量多,速度快,质量好,成本省、功耗低

第一章 性能需求:提出各种性能指标

  • 不同的业务系统,对性能指标的要求是不同的!!!!
  • 不同的业务系统,对性能指标的优先级是不同的!!!
  • 不同的性能指标之间是相互制约的!!!会导致后续一些列设计上的变化!!!

这就是为什么需求阶段需要明确业务系统的性能指标!!!

计算机系统的性能一般包括三的方面。

1.1 可靠性或可用性: stablity

一个方面是它的可靠性或可用性,也就是计算机系统能正常工作的时间,其指标可以是能够持续工作的时间长度(例如,平均无故障时间),也可以是在一段时间内,能正常工作的时间所占的百分比;

1.2 处理能力或效率:  Performance

另一个方面是它的处理能力或效率,这又可分为三类指标:

1.2.1 指标是吞吐率

系统在单位时间内能处理正常作业的个数

1.2.2 指标是响应时间:

从系统得到输入到给出输出之间的时间

1.2.3 指标是资源利用率

即在给定的时间区间中,各种部件(包括硬设备和软件系统)被使用的时间与整个时间之比。

1.3 高并发性

通常是指通过设计保证系统能够同时并行处理很多请求的数量。

高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。

1.4 通信系统性能指标

不同的系统对性能指标的描述有所不同,例如,计算机网络系统常用的性能评估指标为:

1.4.1 信道传输速率

传输速率是泛指数据从一点向另一点传输的速率。如从网络节点向打印服务器传输打印数据的速率,Modem对数据传输的速率,信道传输数据的速率等。传输速率的单位有bts,波特等。

1.4.2 信道吞吐量:throughput

网络吞吐量,信息技术术语,网络中的数据是由一个个数据包组成,防火墙对每个数据包的处理要耗费资源。吞吐量是指在没有帧丢失的情况下,设备能够接受的最大速率。其测试方法是:在测试中以一定速率发送一定数量的帧,并计算待测设备传输的帧,如果发送的帧与接收的帧数量相等,那么就将发送速率提高并重新测试;如果接收帧少于发送帧则降低发送速率重新测试,直至得出最终结果。吞吐量测试结果以比特/秒或字节/秒表示。

1.4.3 容量:Capacity

容量也指物体或者空间所能够容纳的单位物体的数量。

现广泛应用于计算机硬盘、电池等储量的计量。

通信容量-单位时间内能够传输的最大信息量。

1.4.4 信道利用率

用于描述有效信息传递过程中信息占用信道的百分率,也是信道的效率。

1.4.5 传输延迟

传输延迟,发送接收处理时间、电信号响应时间、介质中传输时间三个时间的总和。

1.4.6 响应时间

系统响应时间,是计算机对用户的输入或请求作出反应的时间 [1]  。

系统响应时间的计算要考虑到用户的数目,用户数目越多,响应时间必须越快,不然就难以保证每一个用户都有可以接受的响应时间。

响应时间和时间片的大小有关,一般情况是:时间片越短,响应时间越快。

1.4.7 负载能力(load)

在给定持续运行时长下,设备可承受的最大负载,或在给定负载下,设备可持续运行的最大时长。

带负载能力就是代表器件的输出电流的大小。对于标准TTL器件,输出负载能力的高电平为0.4mA,而作为下级负载的TTL器件的输入高电平电流为0.04mA(40uA),这样一个标准TTL器件最大可以驱动8个以上标准TTL负载。

所谓带负载能力,是说电路的输出电阻的大小,和电压源(电流源)中的内阻是一个意思。

对于CPU: 负载就是指CPU的占用率的可执行任务,比80%的负载,100%负载。

对于5G系统:负载就是就是用户数量或throughput的数据,比如最大64个用户,实际用户的数量就是负载,再如,最大传输速率是1G, 900M数据传输就是负载。

第二章 性能分析:分析和细化影响性能需求的各种因素

CPU计算内存外设IO总线通信
硬件电路

1.主时钟

2. 高速CPU

1. 主时钟

2. 高速内存

1. 主时钟

2. 高速外设

3. 高速flash硬盘

1. 主时钟

2. 高速总线

CPU架构

1. ALU运算速度

2. 指令执行速度

3. 流水线 

4. 吞吐量与吞吐率

5. 高性能计算

1. 主存容量和存取速度

2. 层次性

3. cache

1. IO指令速度

2. IO访问速度

1 . 字长和数据通路宽度

2. 内部高速总线

3. 内部互联总线

操作系统

1. 操作系统调度与优先级

2. 实时性调度

3. 异常处理

4. 调度策略与算法

1. 虚拟内存技术

2.减少内存拷贝

3. 内存层次模型

4. 分区管理

5. 内存管理与算法

1.响应时间与完成时间

2. 中断响应

3. 中断屏蔽

4. IO缓存

1. 进程间通信与进程间数据传输与拷贝

2. 内核空间与用户空间数据传送

3. 死锁

数据库

1. CPU效率

2. CPU多核

3. 负载均衡

1. 网络存储技术

2. 索引优化

3. 查询优化

1.避免不必要的硬盘访问与缓存

2. 读写分离

1. 网络数据库之间通信

2. 本地备份,定期同步

网络通信

1. DMA传送

2. 

1. 避免不必要的内存拷贝

2. 避免

1. 提升通信的响应速度

1. 采用高速通信链路

分布式

1. 负载均衡

应用程序与特定的业务应用算法相关与特定的业务应用算法相关与特定的业务应用算法相关与特定的业务应用算法相关

编程技巧与操作目标

1. 降低无效的CPU占用的时间

2. 较少CPU指令数量

1.避免无效的访问内存

1. 避免无效的访问低效的IO

2. 避免IO等待

1. 避免不必要的网络通信

2. 避免低速通信

算法

数据

结构

软件架构

第三章 系统设计:为高性能设计好系统架构

第四章 系统实现

通过芯片设计、编程语言和代码编程来实现高性能信息系统。 

第五章 系统测试:性能测试与评估

5.1 Linux系统性能评估的工具

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/533986.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FreeRTOS开启任务调度函数xPortStartScheduler详解

在FreeRTOS中,创建完任务后需要调用vTaskStartScheduler开启调度器,在这个函数主要就是创建空闲任务然后调用xPortStartScheduler函数开启任务的调度,本篇文章就以Cortex-M7为例来分析一下这个函数具体做了什么事,并深入理解其中的…

文献阅读:A Lite Distributed Semantic Communication System for Internet of Things

目录 动机:为什么作者想要解决这个问题?贡献:作者在这篇论文中完成了什么工作(创新点)?规划:他们如何完成工作?理由:通过什么实验验证它们的工作结果自己的看法 动机:为什么作者想要…

Python遍历大量表格文件并筛选出表格内数据缺失率低的文件

本文介绍基于Python语言,针对一个文件夹下大量的Excel表格文件,基于其中每一个文件内、某一列数据的特征,对其加以筛选,并将符合要求与不符合要求的文件分别复制到另外两个新的文件夹中的方法。 首先,我们来明确一下本…

【Linux】多线程 --- POSIX信号量+懒汉模式的线程池+其他常见锁

Linux system sprinkle flowers 文章目录 一、POSIX信号量1.阻塞队列实现的生产消费模型代码不足的地方(无法事前得知临界资源的就绪状态)2.信号量的理解3.初步看一下信号量的操作接口4.环形队列实现的生产消费模型5.环形队列的代码编写(维持…

百度将凭借人工智能改变游戏规则并实现盈利?

来源:猛兽财经 作者:猛兽财经 稳健的财务业绩 在2022年第四季度,百度(BIDU)的收入为48亿美元(331亿人民币),比分析师预测的高出了1.72亿美元,但同比下降了约8%。从细分业务来看,百度…

Android:你真的会用Toast吗(介绍安卓好看简约的Toast快速解锁方法)

目录 概要 开源库地址 如何使用 1、首先我们现在根目录下的build.gradle中添加以下依赖 2、然后我们在我们的模块目录(通常是app)下的build.gradle中添加以下依赖 3、 然后这一步是可选的,你可以在你的app模块下任意位置,添加以下…

ANR原理篇 - ANR弹框是如何显示出来的

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 文章目录 系列文章目录前言一、ANR弹框是如何显示流程1.1 找到弹框对应类1.2 查找AppNotRespondingDialog引用…

Python程序员职业现状分析,想提高竞争力,就要做到这六点

现今程序员群体数量已经高达几百万,学历和收入双高,月薪普遍过万。今天,我们就围绕90后程序员人群分析、职业现状、Python程序员分析等,进行较为全面的报告分析和观点论述。 一、程序员人群分析 人数规模上:截当前程…

javaweb系列-JSON对象、BOM对象、DOM对象

1.5.1.3 JSON对象 在 JavaScript 中自定义对象特别简单&#xff0c;其语法格式如下&#xff1a; <body><script>//自定义对象var user {name: "tom",age: 20,gendar: "male",eat: function () { //函数alert("吃饭啦");}};aler…

Xcode多个子工程结合联编开发SDK

Xcode版本&#xff1a;Version 14.3 (14E222b) 这是啥&#xff1f; chat&#xff1a; Xcode 多个子工程结合联编可以用于开发 SDK&#xff0c;这种开发方法是在一个主工程中包含多个子工程&#xff0c;每个子工程代表 SDK 中不同的模块&#xff0c;每个子工程都可以独立编译。…

AutoDL平台租借GPU详解

AutoDL平台租借GPU详解&#xff08;2023年&#xff09; 一、AutoDL租用GPU 1.1 创建实例 首先进入AutoDL官网&#xff1a;AutoDL-品质GPU租用平台-租GPU就上AutoDL进行学生注册登录&#xff08;学生有优惠&#xff09;点击右上角的控制台&#xff0c;进入AutoDL的主页&#…

人工智能应用--深度学习原理与实战--神经网络的工作原理

机器学习是将输入(比如图像)映射到目标(比如标签“猫”)&#xff0c;并建立映射规则(即模型)。在深度学习中&#xff0c;神经网络通过一系列数据变换层来实现这种输入到目标的映射&#xff0c;本章节我们具体来看这种学习过程是如何实现的。 学习内容 1、理解层(Layer)及权重(…

Java调用C#

由于项目采用Hybrid热更&#xff0c;走纯C#开发&#xff0c;目前战斗由客户端到服务端&#xff08;客户端提供dll&#xff09;&#xff0c;服务端负责调用&#xff0c;故需要走Java 调C# dll逻辑。 1、JNI&#xff1a;不支持泛型&#xff08;pb&#xff09;没法转C成功 2、JN…

MatebookE2022款i7集显 华为智能磁吸键盘(DRC-W76)原装出厂Win11系统恢复原厂OEM系统

HUAWEI华为笔记本电脑&#xff0c;Matebook E 2022款 i7 集显 华为智能磁吸键盘 16GB512GB (DRC-W76)原装出厂Windows11系统恢复原厂OEM系统 系统自带所有驱动、办公软件、华为电脑管家等预装软件 链接&#xff1a;https://pan.baidu.com/s/1t7bczFO_RvD31g1uIZoGgw?pwdq2g0 …

前端面试题整理2

目录 1.讲解es6新增map和set&#xff1f; 2.Ts的枚举和元组是什么&#xff1f; 3.vue3中的beforeEnter钩子函数怎么用&#xff1f; 4.获取数据时&#xff0c;加载loading动画&#xff0c;在哪取消比较好Diff算法的优化在哪&#xff1f; 5.Jq中的$(this)和this的区别&#x…

单片机--STM32

【1】课程回顾 【2】课程介绍 1.单片机简介 单片机是单片微型计算机的简称&#xff0c;Mcu是Microcontroller的简称&#xff0c;也就是嵌入式微控制器。采用集成电路技术将具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、定时器/计时器、多种I/O口和中断系统…

P1772 [ZJOI2006] 物流运输

题目提供者 洛谷 难度 提高/省选- 题目描述 物流公司要把一批货物从码头 A 运到码头 B。由于货物量比较大&#xff0c;需要 n 天才能运完。货物运输过程中一般要转停好几个码头。 物流公司通常会设计一条固定的运输路线&#xff0c;以便对整个运输过程实施严格的管理和跟…

20230516使用python3确认三门问题

最烧脑的悖论&#xff0c;意识为什么会影响未来&#xff1f;颠覆你认知的三门问题播报文章 小红虾实验室 2023-04-09 06:08 四川 好看视频优创联盟,优质科学领域创作者 关注 对于懂概率的人来说&#xff0c;他中大奖的概率将成倍增加&#xff0c;甚至获奖率能够达到100%。 今…

【量化交易笔记】6.布林带的实现

上一讲介绍A股移动平均值&#xff08;MA&#xff09;指标&#xff0c;本讲我们来讲解布林布的实现。 布林线&#xff08;BOLL&#xff09;技术指标简介 布林线&#xff08;Bollinger Bands&#xff0c;BOLL&#xff09;又称布林带&#xff0c;是约翰布林&#xff08;John Bol…

dbForge Studio for SQL Server Crack

dbForge Studio for SQL Server Crack 增加了对源代码管理中的数据操作语言(DML)触发器排序的支持。 添加了对不使用EXEC/EXECUTE关键字调用过程/函数的语法支持。 在语法检查中添加了对EXEC命令的支持。 dbForge Studio for SQL Server是一个IDE&#xff0c;用于SQL Server中的…