操作系统抖动现象、网络抖动与延迟、函数抖动之防抖与节流

简介:
愿打开此篇对你有所帮助。

偶然看到一个前端小伙伴写了篇“防抖与节流”,我就想啊,咱后端不也有些喜欢抖来抖去的嘛,我就总结一下吧。
想到几个写几个啊,如果还想看别的抖,可以在评论区留言哦,虽然评论不少,但是我每条都会去看,看到我就加。

好,切正题。

操作系统抖动

我最开始接触到“抖动”这个词啊,除了抖腿,就是这个操作系统抖动了、
话说过两天就要考操作系统了,顺带复习。

在操作系统中,抖动现象是指如果分配给进程的存储块数量小于进程所需要的最小值,进程的运行将很==频繁地产生缺页中断==,这种频率非常高的页面置换现象称为抖动。

在请求分页存储管理中,可能出现这种情况,即对刚被替换出去的页,立即又要被访问。需要将它调入,因无空闲内存又要替换另一页,而后者又是即将被访问的页,于是造成了系统需花费大量的时间忙于进行这种频繁的页面交换,致使系统的实际效率很低,严重导致系统瘫痪,这种现象称为抖动现象。
抖动现象发生在FIFO页面置换算法中,FIFO并不是一个好的置换算法。

产生原因

进程内存不足,分配页面太少,所以总是缺页。

解决方法

换个好点的页面运算算法,减少进程数,增大内存。


背书,大佬勿喷···


网络抖动

说网络抖动可能还不是那么的,大众化。就是网卡啦,打游戏460啦。

没那么夸张哈,抖动和延时,还是有那么点差别的。

延时是网络中的一个重要指标,它由四个关键部分组成:处理延时(processing delay),排队延时(queueing delay),传输延时(transmission delay)和传播延时(propagation delay)。它会影响用户体验,并可能因多种因素而发生变化。抖动是基于延时产生的—具体而言,就是前后延时的值不一致。抖动是两个数据包延时值之间的差异。它通常会导致丢包和网络拥塞。虽然延时和抖动有很多共同点和关联,但是它们并不相同。

延时

延时是网络中的一项重要指标,可衡量数据从一个端点移动到另一个端点所需的时间。网络延时通常在几秒钟的时间范围内,并且可以更具许多因素进行更改,包括端点的位置,数据包的大小以及流量大小。

不良反应

延时主要会影响用户体验。在严格的音频通话中,150毫秒的延时是非常明显的并且会影响用户。在严格的视频通话中,认为400毫秒是可辨识的。将这两种呼叫功能集中在一起后,联合的音频和视频呼叫应该保持同步,并且延时要少于150毫秒以不影响用户。但是,一般来说,延时尽可能低是非常重要的。无论如何,ITU建议将网络延时保持在100毫秒以下。

抖动

在网络上连续传输的数据包即便使用相同的路径,也会有不同的延时。这是由于分组交换网络固有的两个关键原因造成的。
第一,数据包被单独路由。第二,网络设备接收队列中的数据包,因此无法保证延时调度不变。

不良反应

  1. 丢包:当数据包不是均匀的到达接收端时,接收端必须进行弥补并尝试更正。在某些情况下,接收端无法进行适当的更正,并丢失数据包。
  2. 网络拥塞:网络设备无法发送相同数据的流量,因此他们的数据包缓冲区已满并开始丢弃数据包。如果端点上的网络没有干扰,则每个数据包都会到达。但是,如果端点缓冲区满了,会使数据包到达的越来越晚,导致抖动。这被称为初期拥塞(incipient congestion)。通过监视抖动,可以观察到初期拥塞。同样,如果出现初期网络拥塞,则说明抖动正在迅速变化。

当网络设备开始丢弃数据包,并且端点没有收到数据包时就会发生拥塞。终端可能会要求重发丢失的数据包,这会导致拥塞崩溃。

需要注意的是接收端不会直接导致拥塞,也不会丢弃数据包。

何以处置乎?

为了弥补抖动,在连接的接收端使用抖动缓冲区。抖动缓冲区收集并存储传入数据包,以便它可以确定如何以一致的间隔发送它们。

  1. 静态抖动缓冲—其在系统的硬件中实现,并且通常由制造商配置。
  2. 动态抖动缓冲—其在系统软件中实现,并由管理员进行配置。他们可对缓冲进行调整以适应网络变化。


函数抖动

这个我是在前端看到的,是指短时间内大量触发同一事件,比方说你一直给我关注取消关注取消最后再关注就行了。
这样很烦是吧,计算机也烦。

这样会占用大量资源,所以需要做防抖措施。

防抖

当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定时间到来之前,又触发了事件,就重新开始延时。也就是说当一个用户一直触发这个函数,且每次触发函数的间隔小于既定时间,那么防抖的情况下只会执行一次。

节流

跟上面那个差不多,

防抖是将多次执行变为最后一次执行,节流是将多次执行变为每隔一段时间执行
实现函数节流我们主要有两种方法:时间戳和定时器


虽然防抖和节流前端用的比较广泛,但是好的思想我们就要吸纳嘛。

结语

最近流行那个,长尾流量优化:

建议收藏,不然刷着刷着就可能找不到了。
建议大家试试这个CSDN的抖动,在那个“关注”键点来点去,看看它抖不抖

在这里插入图片描述

相关文章
用MASM32按Time Protocol(RFC868)协议编写网络对时程序中的一些有用的函数代码
用MASM32按Time Protocol(RFC868)协议编写网络对时程序中的一些有用的函数代码
|
12天前
|
安全 Linux 网络安全
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息。本文分三部分介绍 nmap:基本原理、使用方法及技巧、实际应用及案例分析。通过学习 nmap,您可以更好地了解网络拓扑和安全状况,提升网络安全管理和渗透测试能力。
56 5
|
14天前
|
网络协议 数据挖掘 5G
适用于金融和交易应用的低延迟网络:技术、架构与应用
适用于金融和交易应用的低延迟网络:技术、架构与应用
43 5
|
2月前
|
关系型数据库 Unix Shell
File - os.tcsetpgrp(fd, pg)函数
`os.tcsetpgrp(fd, pg)` 函数在进行进程控制和信号管理时非常有用,但它涉及Unix底层的工作原理,因此使用时需具备相应知识,以确保正确和适用,并注意相关的权限和错误处理。
146 61
|
1月前
|
机器学习/深度学习 编解码
深度学习笔记(三):神经网络之九种激活函数Sigmoid、tanh、ReLU、ReLU6、Leaky Relu、ELU、Swish、Mish、Softmax详解
本文介绍了九种常用的神经网络激活函数:Sigmoid、tanh、ReLU、ReLU6、Leaky ReLU、ELU、Swish、Mish和Softmax,包括它们的定义、图像、优缺点以及在深度学习中的应用和代码实现。
132 0
深度学习笔记(三):神经网络之九种激活函数Sigmoid、tanh、ReLU、ReLU6、Leaky Relu、ELU、Swish、Mish、Softmax详解
|
1月前
|
机器学习/深度学习 数据可视化 算法
激活函数与神经网络------带你迅速了解sigmoid,tanh,ReLU等激活函数!!!
激活函数与神经网络------带你迅速了解sigmoid,tanh,ReLU等激活函数!!!
|
2月前
|
存储 程序员 API
【收藏】非API函数检测操作系统类型
【收藏】非API函数检测操作系统类型
|
3月前
|
算法 安全 网络安全
探索操作系统核心:进程调度的奥秘网络安全的盾牌与剑——漏洞防御与加密技术
【8月更文挑战第30天】在数字世界的每一次点击和命令背后,都隐藏着一个不为人知的英雄——进程调度器。它默默无闻地在后台工作,确保我们的命令得以流畅执行。本文将揭开这位幕后英雄的面纱,带你了解进程调度的原理、重要性以及它是如何在操作系统中发挥作用的。无论你是编程新手还是资深开发者,理解进程调度都能帮你更好地掌握计算机的运作原理。准备好深入操作系统的核心,一探究竟了吗?让我们开始吧!
|
3月前
|
Java API UED
【实战秘籍】Spring Boot开发者的福音:掌握网络防抖动,告别无效请求,提升用户体验!
【8月更文挑战第29天】网络防抖动技术能有效处理频繁触发的事件或请求,避免资源浪费,提升系统响应速度与用户体验。本文介绍如何在Spring Boot中实现防抖动,并提供代码示例。通过使用ScheduledExecutorService,可轻松实现延迟执行功能,确保仅在用户停止输入后才触发操作,大幅减少服务器负载。此外,还可利用`@Async`注解简化异步处理逻辑。防抖动是优化应用性能的关键策略,有助于打造高效稳定的软件系统。
75 2
|
3月前
|
缓存 网络协议 算法
这些年背过的面试题——网络和操作系统基础篇
本文是技术人面试系列网络和操作系统基础篇,面试中关于网络和操作系统基础都需要了解哪些内容?一文带你详细了解,欢迎收藏!
下一篇
无影云桌面