精选分类
文章列表
TCP拥塞控制
# TCP 拥塞控制
所谓拥塞控制就是防止过多的数据注入网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制和流量控制都是太那个个控制发送方发送数据的速率来达到效果的。
区别在于:拥塞控制是让网络能够承受现有的网络负荷,它是一个全局性的过程,设计所有主机,路由器以及网络传输性能有关的所有因素。而流量控制往往是指点对点的通信量的控制,即接收端控制发送端,即抑制发送端发送数据的速率,以便使接收端来得及接收。
因此,发送方在确定发送报文段的速率时,既要根据接收方的接收能力,又要从全局考虑不要使网络发送拥塞,因此,TCP 协议要求发送方维护两个窗口:
接收窗口 rwnd,接收方根据目前接收缓存大
more...vite和webpack
# Vite 的特点
开发服务器启动速度:
Vite 的设计核心是提高开发环境的启动速度。它基于 原生 ES 模块,在启动时不需要像 Webpack 那样预打包整个项目,只在浏览器请求某个模块时进行按需编译。这使得即使在大型项目中,Vite 的启动速度依然非常快。
热更新(HMR):
Vite 利用 ES 模块 的特性,使其热模块替换(HMR)系统极其高效。它只重新编译并更新变化的模块,HMR 响应时间非常短,提供了更顺畅的开发体验,尤其是对大项目的改动也可以快速生效。
打包机制:
在生产环境中,Vite 使用 Rollup 进行打包。Rollup 是一个专注于处理 ES 模块
more...算法小记
# 算法
# 1. 冒泡排序
思想
冒泡排序的基本思想是通过多次比较相邻的元素,将较大的元素逐步 “冒泡” 到数组的末端。
每一轮遍历后,未排序部分的最大元素会被移动到正确的位置。随着排序的进行,待排序的部分会逐渐减少,因为已经排序好的元素会积累在数组的末端。
步骤如下:
比较相邻元素:从数组的起始位置开始,比较相邻的两个元素。
交换顺序:如果前一个元素比后一个元素大,则交换它们的位置。
重复过程:对每一对相邻元素重复上述步骤,直到整个数组排序完成。
时间空间复杂度
时间复杂度:平均 O (n^2)
空间复杂度:O(1)
代码实现
function bubbleSort(arr)
more...