重拾计网-第四弹 计算机网络性能指标
ps:本文章的图片内容来源都是来自于湖科大教书匠的视频,声明:仅供自己复习,里面加上了自己的理解
这里附上视频链接地址:1.5 计算机网络的性能指标(1)_哔哩哔哩_bilibili
目录
🚀 计算机网络的性能指标
🚀速率
🚀案例:
🚀带宽
🚀吞吐量
🚀时延
🚀举例
🚀再看另一个例子
🚀总结
🚀时延带宽积
🚀往返时间
🚀利用率
🚀丢包率
🚀总结
🚀 计算机网络的性能指标
性能指标可以从不同的方面来度量计算机网络的性能
常用的计算机网络性能指标有以下八个
速率,带宽,吞吐量,时延,时延带宽积,往返时间,利用率,丢包率
为了能够更好的理解速率,我们需要先了解比特
比特是计算机中数据量的单位,也是信息论中信息量的单位,一个比特就是二进制数字的一个一或零
常用的数据量单位有字节,它的英文单词为byte,一个字节包含八个比特
8 bit = 1 Byte
比特的英文单词为bit,常简写为小写字母b
千字节KB,这里的K为2的10次方,因此,KB等于2的10次方个字节
KB = 2的10次方 B
兆字节MB,它等于K乘以KB。因此,MB等于2的20次方个字节
MB = K*KB = 2的10次方 * 2的10次方 B = 2的20次方 B
吉字节GB,它等于K乘以MB,因此,GB等于2的30次方个字节
GB = K*MB = 2的10次方*2的20次方 B = 2的30次方 B
太字节TB,它等于K乘以GB。因此等于2的40次方个字节
TB = K*GB = 2的10次方*2的30次方 B = 2的40次方 B
也许大家有购买新硬盘或U盘的经历,在使用中会发现,操作系统给出的容量与厂家标称的容量不同。例如,这是我计算机中的一块固态硬盘。标重容量为250GB。但操作系统给出的容量为232.8GB,这是什么原因呢?
这是因为计算机中的存储容量单位存在不同的表示方式。厂家通常使用十进制来计量存储容量,其中1GB等于10^9字节。而操作系统使用二进制来计量存储容量,其中1GB等于2^30字节。
因此,在厂家标称的250GB硬盘中,实际上包含的字节数是250 × 10^9字节。然而,操作系统将其转换为二进制单位后,显示的容量为232.8GB,即232.8 × 2^30字节。
这种差异导致了厂家标称的容量与操作系统显示的容量之间的偏差。类似地,其他存储设备如U盘也会存在这种差异。请注意,这种差异并不意味着硬盘或U盘有缺陷,而只是不同计量单位之间的转换造成的结果。
🚀速率
它具体是指连接在计算机网络上的主机在数字信道上传送比特的速率。也称为比特率或数据率
常用的数据率单位有比特每秒
bit/s (b/s bps)
kb/s = 10的三次方 b/s (bps)
千比特每秒,这里的K常用小写,而数据量单位中的K常用大写。
小写K在速率单位中的值为十的三次,也就是1000。而大写K在数据量单位中的值为二的十次,也就是1024
兆比特每秒,尽管这里的大写字母M与数据量单位中的相同,但在速率单位中,其值为十的六次。而在数据量单位中,其值为二的二十次
吉比特每秒,尽管这里的大写字母G与数据量单位中的相同,但在速率单位中,其值为十的九次。而在数据量单位中,其值为二到三十次
太比特每秒,尽管这里的大写字母T与数据量单位中的相同,但在数据单位中,其值为十到十二次,而在数据量单位中,其值为二的四十次
🚀案例:
有一个待发送的数据块。大小为100兆字节MB。网卡的发送速率为100兆比特每秒Mbps。则网卡发送完该数据块需要多长时间?
首先,我们需要将数据块的大小从兆字节(MB)转换为兆比特(Mbps),因为网卡的发送速率是以比特为单位的。
1 字节 = 8 比特
所以,100 兆字节 = 100 × 8 = 800 兆比特。
接下来,我们可以使用以下公式来计算发送完整个数据块所需的时间:
时间 = 数据量 / 速率
其中,数据量是800兆比特,速率是100兆比特每秒。
时间 = 800 兆比特 / 100 兆比特每秒 = 8 秒
因此,网卡发送完该数据块需要8秒的时间。
主要是看清楚题目里面有没有给你准确的数据,没有给才能用下面的,给了准确的数据则不能直接套用下面的
🚀带宽
带宽在模拟信号系统中的意义是指信号所包含的各种不同频率成分所占据的频率范围,其基本单位是赫兹
常用单位有千赫兹、兆、赫兹、集赫兹
例如,在传统的通信线路上,传送的电话信号的标准带宽为三点一千赫兹。范围从三百赫兹到三点四千赫。这是话音的主要成分的频率范围。
带宽在计算机网络中的意义是用来表示网络的通信线路所能传送数据的能力,因此,网络带宽表示在单位时间内,从网络中的某一点到另一点所能通过的最高数据率,因此,带宽这个计算机网络性能指标的单位与我们刚刚介绍的速率这个性能指标的单位是相同的,基本单位是比特每秒,常用单位有千比特每秒、兆比特每秒、吉比特每秒、太比特每秒。
🚀吞吐量
大家可能有过这样的经历,有朋友问,你家的出口网速有多大?你可能回答说200兆,这里我们往往省略说比特每秒,完整的描述应该是最高速率为200兆比特每秒,而这个最高速率,其实就是你家网络的出口带宽,这当然是一个很重要的计算机网络性能指标,它直接关系到我们的网络应用体验,我们介绍了带宽的两种描述,其实,带宽的这两种表述之间有着密切的联系。一条通信线路的频带宽度越宽,其所能传输数据的最高数据率也就越高。
吞吐量表示在单位时间内通过某个网络(或信道,接口)的数据量
吞吐量被经常用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络
吞吐量受网络带宽或额定速率的限制
例如,这是一个带宽为1G比特每秒的以太网。其吞吐量受带宽限制,最高为一G比特每秒,通常只能达到700兆比特每秒
🚀时延
我们来看看分组从源主机传送给目的主机的过程中,都会在哪些地方产生时延?
源主机将分组发往传输线路,这需要花费一定的时间,我们把这段时间称为发送时延
代表分组的电信号在链路上传输,这也需要花费一定的时间,我们把这段时间称为传播时延
路由器收到分组后,对其进行存储转发,这也需要花费一定的时间,我们把这段时间称为处理时延
一般来说,源主机和目的主机之间的路径会由多段链路和多个路由器构成,因此会有多个传播时延和处理时延
通过本例可知,网络时延由三部分构成,他们是发送时延。传播时延和处理时延。
发送时间的计算公式为分组长度除以发送速率
这里需要对发动速率做一下说明,如图所示,这是家庭局域网的一部分,网卡的发送速率、信道带宽、交换机的接口速率,它们共同决定着主机的发送速率。例如,若网卡的发送速率为1G比特每秒,信道带宽为1G比特每秒,交换机的接口速率为1G比特每秒,则主机的发送速率理论上最大可以达到1G比特每秒,若网卡的发送速率为100兆比特每秒,信道带宽为1G比特每秒,交换机的接口速率为1G比特每秒,则主机的发送速率理论上最大只能达到100兆比特每秒,若网卡的发送速率为1G比特每秒,进到带宽为100兆比特每秒,交换机的接口速率为1G比特每秒,则主机的发送速率理论上最大也只能达到100兆比特每秒,从该例可以看出,在构建网络时,应该做到各设备间以及传输介质的速率匹配,这样才能完全发挥出本应具有的传输性能,希望同学们重视这一点。
因为大家今后就可能面临新房装修时网络布线以及相关设备的采购问题,如果未认真考虑。造成网络性能无法满足自己的应用需求,再进行改造将会是非常麻烦的事情,目前主流的家庭局域网带宽是1000兆,有些发烧友甚至打造家庭万兆局域网
再来看传播实验的计算公式。由信道长度除以电磁波传播速率。电磁波在自由空间的传播速率是光速,即3乘十的八次方米每秒。电磁波在网络传输媒体中的传播速率比在自由空间要略低一些,在铜线电缆中的传播速率约为2.3乘以十的八次方米每秒。在光纤中的传播速率约为2.0乘以十的八次方米每秒。因此,要计算传播时延,首先应该确定采用的是什么传输媒体。进而可以确定电磁波在该传输媒体中的传播速率。
处理时延没有简单的计算公式,因为它不方便计算,这并不难理解,因为网络中的数据流量是动态变化的,因此,路由器的繁忙程度也是动态变化的。
另外。各种路由器的软硬件性能也可能有所不同,因此很难用一个公式计算出处理时延。这里需要说明的是,有的教材中还有一个排队时延。而本课程将排队时延与处理时延合并,称为处理时延。由于处理时延不方便计算。因此,一般在有关计算实验的考题中,题目往往会指明处理时延,忽略不计
那么请大家思考一下,在处理时延忽略不计的情况下。网络总时延中,是传播时延占主导呢,还是发送时延占主导?由下列举例看出
🚀举例
将题目给定的相应已知量代入公式,这里二的20次是数据量单位中的兆,这里十的六次是速率单位中的兆,计算结果为800多秒
传播时延等于信道长度除以电磁波传播速率,将题目给定的相应已知量代入公式,题目并未给出传输介质,为了方便计算,我们假设传输介质是光纤,因此电磁波传输速率这里为二乘以十的八次方米每秒,计算结果为0.005秒
很显然,在本例中,发送时延占主导
🚀再看另一个例子
再来看另一个例子,本例与例三只有一点不同,就是将数据块的大小从100兆字节改为1字节。我们使用同样的方法可以计算出发送时间为八乘十的负六次方秒,传播时延没有改变,仍是0.005秒。很显然,在本例中,传播时延占主导。
通过以上两个例子可以看出,构成网络时延的发送时延、传播时延以及处理时延,在处理时延忽略不计的情况下,我们不能想当然的认为发送时延主导或传播时延占主导。而应该具体问题具体分析。
🚀总结
🚀时延带宽积
首先来看时延带宽机。从字面意思就可以看出。该性能指标是时延与带宽的乘积。
但是时延由发送时延、传播时延和处理时盐三部分构成,该性能指标中的时延具体是指哪一个呢?答案是传播时延,也就是说,时延带宽积是传播时延与带宽的乘积
我们可以把传输电路看成是一个管道,且长度为传播实验,横截面积为带宽,则实验带宽机就是该管道的体积,可以想象成管道中充满了比特,若发送端连续发送数据,则在所发送的第一个比特即将到达终点时,发送端就已经发送了时延带宽机个比特
链路的时延带宽积,又称为以比特为单位的链路长度。
🚀往返时间
在许多情况下,因特网上的信息不仅仅单方向传输,而是双向交互。
我们有时很需要知道双向交互一次所需的时间
因此,往返时间RTT也是一个重要的性能指标
来看下面这个例子
以太网上的某台主机要与无线局域网中的某台主机进行信息交互,往返时间RTT是指从原主机发送分组开始,直到原主机收到来自目的主机的确认分组为止所需要的时间,大家来分析一下,分组是在这个以太网上耗时较多,还是在这个无线局域网上耗时较多?又或者是在卫星链路上耗时较多呢?
答案是卫星链路耗时较多。一般情况下,卫星链路的距离比较远,所带来的传播时延比较大,例如,地球同步卫星距离地球36000公里。那么可以计算出通过同步卫星转发分组所带来的传播时间大约为240毫秒
🚀利用率
利用率有两种,一种是信道利用率,另一种是网络利用率。
信道利用率用来表示某信道有百分之几的时间是被利用的,也就是有数据通过,而网络利用率是指全网络的信道利用率加权平均。
根据排队论,当某信道的利用率增大时,该信道引起的时延也会迅速增加。因此,信道利用率并非越高越好。如果令D0表示网络空闲时的时延。D表示网络当前的时延。那么在适当的假定条件下,可以利用下面的简单公式来表示D,D0和利用率U之间的关系。D等于D0除以一减U。
我们可以按该式画出实验D随利用率U的变化曲线。可以看出,时延D从网络空闲时的时延D0随利用率U的增加而迅速增长。
当网络的利用率达到50%时,时延就要加倍。
当网络的利用率超过50%时,时延急剧增大。
当网络的利用率接近100%时,时延就趋于无穷大。
因此,一些拥有较大主干网的ISP通常会控制他们的信道利用率不超过50%
如果超过了,就要准备扩容,增大线路的带宽
当然,也不能使信道利用率太低,这会使宝贵的通信资源白白浪费
应该使用一些机制,可以根据情况动态调整输入到网络中的通信量,使网络利用率保持在一个合理的范围内。
🚀丢包率
丢包率及分组的丢失率。是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率
丢包率具体可分为接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率等
丢包率是网络运维人员非常关心的一个网络性能指标,但对于普通用户来说,往往并不关心这个指标,因为他们通常意识不到网络丢包
分组丢失主要有两种情况
一种情况是分组在传输过程中出现误码,被结点交换机丢弃。
如图所示,主机发送的分组在传输过程中出现了误码,当分组进入传输路径中的结点交换机后,被节点交换机检测出了误码,进而被丢弃
思考,结点交换机是如何检测出分组有误码?
节点交换机(或交换机)通常使用帧校验序列(FCS)来检测分组是否存在误码。FCS是一种错误检测技术,通过在数据帧的尾部添加一个校验值来实现。
以下是交换机检测分组误码的基本过程:
接收:当交换机接收到一个数据帧时,它会将帧中的数据提取出来,并获取帧尾部的FCS字段。
校验:交换机使用特定的算法(如循环冗余校验CRC)对接收到的数据进行计算,生成一个校验值。
比较:交换机将计算得到的校验值与帧尾部的FCS字段进行比较。
判断:如果计算得到的校验值与FCS字段相匹配,说明数据帧没有误码,可以继续处理。如果校验值不匹配,说明数据帧存在误码。
处理:当交换机检测到分组有误码时,它可以采取不同的策略,例如丢弃该分组、请求重传或发送错误报告等。
通过使用FCS校验,交换机能够快速检测出分组是否存在误码,并采取适当的措施来处理这些错误。这有助于确保数据在网络中的可靠传输。
另一种情况是分组到达一台存储队列已满的分组交换机时被丢弃。在通信量较大时,就可能造成网络拥塞
如图所示。假设路由器R5当前的输入缓冲区已满,此时,主机发送分组到达该路由器。路由器没有存储空间暂存该分组。只能将其丢弃。
需要说明的是,实际上,路由器会根据自身拥塞控制方法,在输入缓存还未满的时候就主动丢弃分组,因此,丢包率反映了网络的拥塞情况
无拥塞时路径丢包率为0
轻度拥塞时,路径丢包率为1%~4%
严重拥塞时,路径丢包率为5%~15%
当网络的丢包率较高时,通常无法使网络应用正常工作。
🚀总结
希望对你有帮助!
相关文章:

重拾计网-第四弹 计算机网络性能指标
ps:本文章的图片内容来源都是来自于湖科大教书匠的视频,声明:仅供自己复习,里面加上了自己的理解 这里附上视频链接地址:1.5 计算机网络的性能指标(1)_哔哩哔哩_bilibili 目录 &#x…...

【Vue】Vue 路由的配置及使用
目录捏 前言一、路由是什么?1.前端路由2.后端路由 二、路由配置1.安装路由2.配置路由 三、路由使用1.route 与 router2. 声明式导航3. 指定组件的呈现位置 四、嵌套路由(多级路由)五、路由重定向1.什么是路由重定向?2.设置 redire…...

网络安全事件分级指南
一、特别重大网络安全事件 符合下列情形之一的,为特别重大网络安全事件: 1.重要网络和信息系统遭受特别严重的系统损失,造成系统大面积瘫痪,丧失业务处理能力。 2.国家秘密信息、重要敏感信息、重要数据丢失或被窃取、篡改、假…...

uniapp组件库SwipeAction 滑动操作 使用方法
目录 #平台差异说明 #基本使用 #修改按钮样式 #点击事件 #API #Props #Event 该组件一般用于左滑唤出操作菜单的场景,用的最多的是左滑删除操作。 注意 如果把该组件通过v-for用于左滑删除的列表,请保证循环的:key是一个唯一值,可以…...

YARN节点故障的容错方案
YARN节点故障的容错方案 1. RM高可用1.1 选主和HA切换逻辑 2. NM高可用2.1 感知NM节点异常2.2 异常NM上的任务处理 4. 疑问和思考4,1 RM感知NM异常需要10min,对于app来说是否太长了? 5. 参考文档 本文主要探讨yarn集群的高可用容错方案和容错能力的探讨。…...

C++后端笔记
C后端笔记 资源整理一、高级语言程序设计1.1 进制1.2 程序结构基本知识1.3 数据类型ASCII码命名规则变量间的赋值浮点型变量的作用字符变量常变量 const运算符 二、高级语言程序设计(荣) 资源整理 C后端开发学习路线及推荐学习时间 C基础知识大全 C那…...

JavaEE中什么是Web容器?
Web容器(也称为Servlet引擎)是一个用于执行Java Servlet和JSP的服务器端环境。它负责管理和执行在其上运行的Web应用程序。 Tomcat是Web容器 Apache Tomcat 是一个流行的开源的Web容器,它实现了Java Servlet和JavaServer Pages(…...

MySQL 8.0 架构 之错误日志文件(Error Log)(1)
文章目录 MySQL 8.0 架构 之错误日志文件(Error Log)(1)MySQL错误日志文件(Error Log)MySQL错误日志在哪里Window环境Linux环境 错误日志相关参数log_error_services 参考 【声明】文章仅供学习交流&#x…...

51单片机实验课一
实验任务一:实现控制8个发光管的亮(灭) #include <REGX52.H> void Delay1ms(unsigned int xms) //11.0592MHz {unsigned char i, j;while(xms){xms--;i 12;j 169;do{while (--j);} while (--i);} } void main() {while(1){P20;//八…...

【.NET Core】多线程之线程池(ThreadPool)详解(一)
【.NET Core】多线程之线程池(ThreadPool)详解(一) 文章目录 【.NET Core】多线程之线程池(ThreadPool)详解(一)一、概述二、线程池的应用范围三、线程池特性3.1 线程池线程中的异常…...

圆的参数方程是如何推导的?
圆的参数方程是如何推导的? 1. 圆的三种参数表示2. 三角函数万能公式3. 回到圆的参数方程1. 圆的三种参数表示 已知圆的第一种参数方程为: x 2 + y 2 = r x^2+y^2=r x2+y2=r 圆的图像如下: 通过上图,不难理解,圆的参数方程还可以用三角函数表示,也就是第二种参数表…...

sqlmap使用教程(2)-连接目标
目录 连接目标 1.1 设置认证信息 1.2 配置代理 1.3 Tor匿名网络 1.4 检测WAF/IPS 1.5 调整连接选项 1.6 处理连接错误 连接目标 场景1:通过代理网络上网,需要进行相应配置才可以成功访问目标主机 场景2:目标网站需要进行身份认证后才…...

c++ http第一个服务
c http第一个服务 一、下载相关依赖:这是一个git开源项目 代码仓地址 二、演示代码,编译参数:g test.cpp -I/**** -lpthread #include <httplib.h> using namespace httplib;void wuhan(const Request &req, Response &res) …...

深入Android S (12.0) 探索Framework之输入子系统InputReader的流程
Framework层之输入系统 第一篇 深入Android S (12.0) 探索Framework之输入系统IMS的构成与启动 第二篇 深入Android S (12.0) 探索Framework之输入子系统InputReader的流程 文章目录 Framework层之输入系统前言一、基础知识1、输入子系统2、INotify 与 Epoll2.1、INotify 机制…...

【cucumber】cluecumber-report-plugin生成测试报告
cluecumber为生成测试报告的第三方插件,可以生成html测报,该测报生成需以本地json测报的生成为基础。 所以需要在测试开始主文件标签CucumberOptions中,写入生成json报告。 2. pom xml文件中加入插件 <!-- 根据 cucumber json文件 美化测…...

华为欧拉操作系统结合内网穿透实现固定公网地址SSH远程连接
文章目录 1. 本地SSH连接测试2. openEuler安装Cpolar3. 配置 SSH公网地址4. 公网远程SSH连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 欧拉操作系统(openEuler, 简称“欧拉”)是面向数字基础设施的操作系统,支持服务器、云计算、边缘openEuler是面向数字基础设施的操作系…...

加速 Selenium 测试执行最佳实践
Selenium测试自动化的主要目的是加快测试过程。在大多数情况下,使用 Selenium 的自动化测试比手动测试执行得特别好。在实际自动化测试实践中,我们有很多方式可以加速Selenium用例的执行。 我们可以选择使用不同类型的等待、不同类型的 Web 定位器、不同…...

c语言野指针
系列文章目录 c语言野指针 c语言野指针 系列文章目录c语言野指针 c语言野指针 野指针可以用于破坏修改别人的内存空间,比如游戏外挂 野指针 野指针:野指针是指向一个未知的内存空间,在读写的时候出现错误。 0-255都是系统保留的 不可以读&am…...

【MySQL】where和having的区别
🍎个人博客:个人主页 🏆个人专栏:数据库 ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 用途: 使用位置: 操作对象: 聚合函数: 示例: 结语 我的其他博客 前言 数据库中的 WHERE 和 HAVING 子句在 SQL 查…...

npm pnpm yarn 报错或常见问题处理集锦
各种卡死,报错问题处理汇总 1. npm 安装 卡死了怎么办,npm # 切换源 npm config set registry https://registry.npmmirror.com # 查看源 npm config get registry2. pnpm安装 卡死了怎么办 方法1:切换源 npx pnpm config set registry h…...

【Git】常用的Git操作集合
常用的Git操作集合 1. 分支操作1.1 查看本地所有分支git branch 1.2 查看所有分支(包含本地远程仓库)git branch -a 1.3 切换分支git checkout test 2. 常用基本操作2.1 查看 git 各存储区内(文件)状态git status 2.2 查看工作区与暂存区文件差异git dif…...

JavaScript库jquery的使用方法
"写更少,做更多"是jquery的设计理念,jquery是一个兼容多浏览器的JavaScript库,利用jquery的语法设计能使开发更便捷。 网页添加jquery的方法:1.从jquery.com下载库;2.从CDN中载入库(示例使用)&a…...

Vue (v-bind指令、el与data的两种写法、理解MVVM、数据代理、V-no事件处理、双向数据绑定V-model、登陆页面实现
V-bind指令 el与data两种写法 MVVM 数据代理 V-no事件处理 V-no用于监听DOM对象 双向数据绑定V-model v-model 指令用来在 input、select、textarea、checkbox、radio 等表单控件元素上创建双向数据绑定,根据表单上的值,自动更新绑定的元素的值。 按钮的…...

SpringBoot - SpringBoot手写模拟SpringBoot启动过程
依赖 建一个工程,两个Module: 1. springboot模块,表示springboot框架的源码实现 2. user包,表示用户业务系统,用来写业务代码来测试我们所模拟出来的SpringBoot 首先,SpringBoot是基于的Spring,所以我…...

40. 组合总和 II - 力扣(LeetCode)
题目描述 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意:解集不能包含重复的组合。 输入示例 candidates [10,1,2,7,…...

第15届蓝桥杯嵌入式省赛准备第二天总结笔记(使用STM32cubeMX创建hal库工程+按键输入)
一.查看电路图 按键是使用的PB0,PB1,PB2,PA0四个引脚,然后使用CubeMX配置引脚,4个脚都配置为输入模式和上拉。 程序生成之后把不用的删掉,需要的留下,这里我把函数名改了。 然后写按键扫描读取程序,这里参考的正点原子…...

【论文阅读】One For All: Toward Training One Graph Model for All Classification Tasks
目录 0、基本信息1、研究动机2、创新点——One For All :unique features3、准备4、具体实现4.1、用TAGs统一来自不同领域的图数据4.2、用NOI(NODES-OF-INTEREST)统一不同图任务4.2.1、NOI子图4.2.2、NOI提示结点 4.3、用于图的上下文学习&am…...

Python多线程爬虫——数据分析项目实现详解
前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家:https://www.captainbed.cn/z 「个人网站」:雪碧的个人网站 ChatGPT体验地址 文章目录 前言爬虫获取cookie网站爬取与启动CS…...

unity全局音量管理/全局音量设置与音量设置界面(含静音功能)
前言 本文将会介绍如何使用audiomixer实现全局音量控制,并且会介绍如何实现游戏内的含静音功能的音量设置界面。 本人也是个初学者,在看过一些关于音量管理的教程后,发现使用audiomixer实现全局音量控制可能是最方便、功能最完备、强大的&a…...

C++ vector 数组转换、查找、最大最小值、排序、排行的几种用法
C vector中常用到排序、取最值,一些场景可能还会要计算某个元素的排行,以下就是一些实际例子,精简、有效。 【1】会涉及到数组转vector: vector<int> v(arr, arr N); // N为数组size,可用sizeof(arr)/sizeof(i…...