拥塞窗口(cwnd)与慢启动阈值(ssthresh)
拥塞窗口(cwnd)与慢启动阈值(ssthresh)详解
1. 拥塞窗口(Congestion Window, cwnd)
定义:发送方维护的一个变量,表示当前允许一次性发送的未确认数据量(单位:MSS,最大报文段大小)。
例如:cwnd=4 表示可以连续发送4个MSS的数据,无需等待ACK。
作用:
动态调整发送速率,避免网络过载(拥塞控制的核心)。
与接收方的通告窗口(rwnd)共同决定实际发送窗口:**实际窗口 = min(cwnd, rwnd)**。
初始值:
通常初始为 1 MSS(如RFC 5681建议),现代Linux内核可能初始为 10 MSS。
2. 慢启动阈值(Slow Start Threshold, ssthresh)
定义:一个动态阈值,用于区分慢启动阶段和拥塞避免阶段。
当 cwnd < ssthresh 时,TCP进入指数增长的慢启动阶段。
当 cwnd >= ssthresh 时,TCP转为线性增长的拥塞避免阶段。
初始值:
通常设为一个大值(如 65535字节),在首次拥塞事件后更新为:**ssthres ...
排序算法对比
排序算法的分类法排序算法可以按照多个维度进行分类,包括 自适应性、原地性、稳定性、比较性 等。以下是详细的分类说明,并涵盖 选择排序、冒泡排序、插入排序、快速排序、归并排序、堆排序、桶排序、计数排序、基数排序、希尔排序。
1. 按自适应性(Adaptivity)划分定义:算法的时间复杂度是否受输入数据的有序程度影响。
算法
是否自适应
说明
选择排序
❌
无论数据是否有序,时间复杂度始终为 O(n²)
冒泡排序
✅
优化版本可在数据有序时提前终止(最好情况 O(n))
插入排序
✅
对近乎有序数据效率高(最好情况 O(n))
快速排序
❌(通常)
标准实现不关心初始顺序,但某些优化版本可能自适应
归并排序
❌
无论数据是否有序,时间复杂度始终为 O(n log n)
堆排序
❌
时间复杂度固定为 O(n log n)
桶排序
✅
数据分布均匀时效率高(接近 O(n))
计数排序
❌
时间复杂度固定为 O(n + k)
基数排序
❌
时间复杂度固定为 O(nk)
希尔排序
2. 按原地性(In-Place)划分定义:算法是否需要 ...
前缀和矩阵:快速子矩阵批量求和
前缀和 & 差分 - OI Wiki浅谈矩阵前缀和 - Seaway-Fu - 博客园
自适应排序与非自适应排序
自适应排序 (Adaptive Sort)自适应排序是指排序算法的性能会随着输入数据的初始状态而变化。具体来说:
定义:如果排序算法在处理已经部分有序的输入时表现更好(即时间复杂度降低),则该算法是自适应的。
特点:
对近乎有序的数据效率更高
时间复杂度会根据输入数据的有序程度而变化
实际应用中往往表现更好
常见自适应排序算法:
插入排序(Insertion Sort) - 对近乎有序数据可达O(n)
冒泡排序(Bubble Sort) - 优化版可在有序时提前终止
希尔排序(Shell Sort)
归并排序(Merge Sort)的某些变体
Timsort (Python和Java使用的混合排序算法)
非自适应排序 (Non-adaptive Sort)非自适应排序是指算法的性能不随输入数据的初始状态而变化:
定义:无论输入数据是否有序,算法都保持相同的时间复杂度。
特点:
性能稳定,不受输入数据特性影响
在最坏、平均和最好情况下时间复杂度相同
适合作为通用排序方案
常见非自适应排序算法:
选择排序(Selection Sort)
堆排序(Hea ...
虚拟人物
一致性 面部和身材
高清修复 生成后使用UltraSharp或Topaz Gigapixel放大分辨率,避免模糊。
局部重绘 用Stable Diffusion的Inpaint修正个别崩坏的细节(如手部、配饰)。
1.controlnet控制人脸和骨骼一致性2.使用虚拟人物现有方案,比如字节的3.使用角色提示词,Textual Inversion将角色特征编码为特殊关键词(如your_character_v1),适合简单固定风格。4.训练专门loras5.使用参考图
Python牛客面试试题和经验
百度测开日常实习一二面oc_牛客网
简历开源项目开源fast-python-depth2pointcloud向量化点云计算、Character_Select文生图角色提示词锚选、images-display静态图库项目,自建个人博客
理解RGBD-SLAM,ORB-SLAM,
爬虫dify平台的缺陷。
sql,ES、redis\MCP\B+树、HTTP状态码、缓存穿透、解释 MySQL 事务的 ACID 特性,并说明每个特性的含义,MySQL 的四种事务隔离级别分别是什么?各自解决了哪些问题?
3年人工智能应用开发经验,4年CV经验
招聘信息-经验帖子
[[Python牛客面试试题和经验]]
TCP 是如何保证数据传输的可靠性的?
1. 建立可靠连接:三次握手
SYN:客户端发送同步序列号(SYN=1, seq=x)。
SYN-ACK:服务端确认并同步自己的序列号(SYN=1, ACK=1, seq=y, ack=x+1)。
ACK:客户端再确认(ACK=1, seq=x+1, ack=y+1)。
作用:同步初始序列号、确认双方收发能力、防止历史连接初始化。
2. 数据按序到达:序列号与确认应答
序列号(Sequence Number):每个字节都有编号,保证按序重组。
确认号(Acknowledgment Number):期望收到的下一个字节序号。
累积确认:ACK 表示该序号之前的所有数据已正确接收。
3. 丢包重传:超时重传 + 快速重传
超时重传(RTO):发送端为每个报文段维护定时器,超时未收到 ACK 即重传。
RTO 基于 RTT 动态计算(Jacobson/Karels 算法)。
快速重传:连续收到 3 个重复 ACK 立即重传丢失段,无需等待超时。
4. 流量控制:滑动 ...
视频生成
start-comfyui1start-comfyui
爆显存可能导致comfyui挂掉
新下载的模型需要在模型区 刷新TODO:
prompt生成及优化,中英文互译
图精细化和扩张
图片修复和调整
常见任务:outpaint 扩展画布应用包括:
场景扩展:扩大原图的场景范围,以展示更完整的环境
构图调整:通过扩展画布来优化整体构图
内容添加:向原始图像添加更多相关的场景元素
inpaint 修复常见的修复包括:
缺陷修复:删除不需要的物体,修复不正确的 AI 生成的身体部位等。
细节优化:精确调整局部元素(如修改服装纹理、调整面部表情)
和其他场景
Upscale 图像放大Image Upscaling 是使用算法将低分辨率图像转换为高分辨率的过程。 与传统的插值方法不同,AI 放大模型(如 ESRGAN)可以在保持图像质量的同时智能重建细节。Finegrain Image Enhancer - a Hugging Face Space by finegrain 对私处、毛发重建一般,会进行涂抹,但是对于景色和模糊、动态重建非常好,会锐化和重绘非常多WPS图片 无损放大:锐化 ...
变长数组(VLA)
C语言变长数组(VLA)的用法(非常详细,附带实例) - C语言中文网
变长数组的长度在运行时确定(例如通过变量指定),但一旦确定后,其长度在当前函数生命周期内固定不变。 也就是局部用变量指定数组长度。
栈上动态分配
C11 将 VLA 设为可选特性,不是标准C的一部分,部分编译器(MSVC)可能不支持。
结构体/联合体中禁用,不能static修饰,不能全局(全局数据需编译时确定大小)
特性
变长数组
动态内存分配
内存位置
栈
堆
生命周期
自动释放(离开作用域)
需手动释放(free)
大小限制
受栈空间限制(较小)
受堆空间限制(较大)
语法复杂度
简单
需手动管理