搜索:LRU

共命中 26 条(服务端检索)
操作系统内功 · 第 36 篇|内存回收:kswapd、LRU 链表与 working set
P99 尖刺与内存回收的关系比你想的紧密。本篇拆解 zone 水位线触发的两条回收路径、kswapd 的节律与 direct reclaim 的代价、active/inactive LRU 链表的页面老化机制,以及 workingset refault 如何衡量「回收错了页面」的成本,并给出应用工程师的观测清单。
后端技术 精选 · 原创 · 今天 阅读 1·访客 1
LeetCode 146. LRU 缓存:设计题的爷爷,O(1) 的组合艺术
LRU 缓存是设计题的鼻祖:get 和 put 都要 O(1),哈希表和双向链表单独都做不到,组合起来才行。拆解「为什么需要两种结构」、双向链表的实现细节、以及 LRU 思想在 Redis 与操作系统的真实存在。
算法题解 精选 · 原创 · 今天 阅读 4·访客 4
LeetCode 460. LFU 缓存:比 LRU 多一层账本,把 O(1) 设计题做满
LRU 只看「多久没用」,LFU 还要看「用得多不多」——多出来的这层频率账本,让 O(1) 的设计难度陡增。本文从朴素方案的瓶颈推到「频率桶 + 双向链表」的双字典结构,逐段讲透驱逐与晋升的每一步,最后用本地测试跑通边界用例,顺带看看 Redis 是怎么把这套思想塞进 24 个比特的。
算法题解 精选 · 原创 · 10-24 阅读 76·访客 74
LeetCode 146. LRU 缓存:哈希表 + 双向链表的经典组合拳
LRU 缓存要求 get 与 put 都做到 O(1),单靠哈希表或单靠链表都做不到。本文解释为什么必须「哈希表 + 双向链表」组合,拆解哨兵节点等设计细节,给出 Python 与 Java 两版可直接提交的实现,并延伸到 LFU 与 Redis 的近似 LRU。
算法题解 精选 · 原创 · 10-6 阅读 182·访客 181
LeetCode 88. 合并两个有序数组:从后往前的原地合并
合并两个有序数组的关键不是「合并」,是「从后往前」——从前往后写会覆盖 nums1 的数据,从后往前就永远不会。一道 Easy 题里藏着「空间约束改变算法方向」的通用思维,以及它在归并排序中的本源。
算法题解 精选 · 原创 · 今天 阅读 4·访客 4
LeetCode 21. 合并两个有序链表:链表合并与「虚拟头节点」
合并两个有序链表是归并排序 merge 的链表版——虚拟头节点(dummy)消除「头节点特判」,尾插的双指针——拆解 dummy 节点的通用技巧、剩余链表的直接拼接,以及它在合并 K 个链表中的地位。
算法题解 精选 · 原创 · 今天 阅读 3·访客 3
操作系统内功 · 第 37 篇|swap 与 zram:交换空间的工程决策
服务器到底要不要 swap?这个争论持续了三十年。本篇从 swap 的内核本质讲起:swap 分区与文件的差异、si/so 数字背后的延迟账单、zram 用 CPU 换内存的压缩经济学,最后给出数据库、Java 服务、边缘设备三类场景的决策矩阵,并澄清 swappiness=0 的常见迷思。
后端技术 精选 · 原创 · 今天 阅读 1·访客 1
LeetCode 206. 反转链表:链表操作的第一课
反转链表是链表的「Hello World」——迭代的三指针、递归的「 trusts 后面的已完成」、以及「哨兵节点」的通用技巧。这道 Easy 题承载着链表操作的全部基本功:prev/curr/next 的维护、指针的赋值顺序、递归的信任传递。
算法题解 精选 · 原创 · 今天 阅读 2·访客 2
LeetCode 206 反转链表之外:链表设计的「哨兵节点」通用技巧
哨兵节点(dummy head)是链表设计的「万能前置」——它让删除头节点、合并链表、区间反转的全部「头节点特判」消失。一道题学会哨兵,所有链表题的代码量减半。
算法题解 精选 · 原创 · 今天 阅读 2·访客 2
LeetCode 232. 用栈实现队列与 141 判环之外:双结构的巧妙转化
用两个栈实现队列是「数据结构转化」的经典:入栈天然先进后出,两次「翻转」就变成先进先出——均摊 O(1) 的摊还分析、lazy 转移的时机选择、以及「最小化翻转次数」的设计意识。
算法题解 精选 · 原创 · 今天 阅读 2·访客 2
模型分发的工程:权重下载、镜像化与 P2P 的带宽战争
几十 GB 的模型权重要在几百个节点上部署——模型分发是 LLM 时代新增的基础设施问题:下载慢、带宽贵、版本乱。本篇拆解模型分发的四种方案(直连下载、镜像仓库、P2P 分发与本地缓存)、冷启动优化的衔接、以及分发管线的工程纪律。
大模型 精选 · 原创 · 昨天 阅读 2·访客 2
LeetCode 347. 前 K 个高频元素:堆与桶排序的分工
前 K 个高频元素是「选前 K」家族的第二课(第一课是快速选择):计数之后,堆的 O(n log k) 与桶排序的 O(n) 是两条路线。本文讲清堆解法的通用性、桶排序的空间换时间、以及「前 K 问题」的选择决策树。
算法题解 精选 · 原创 · 2天前 阅读 19·访客 19
LeetCode 25. K 个一组翻转链表:指针操作的天花板
K 个一组翻转链表是链表指针操作的天花板难度:分组、翻转、再拼接,每组要管四个指针的接续。本文讲清「 dummy 节点 + 分组定位 + 组内翻转 + 前后拼接」的完整流程、每一步的指针变化,以及把这类难题做对的通用方法——画图与不变量。
算法题解 精选 · 原创 · 2天前 阅读 13·访客 13
Colibri(JustVugg/colibri):纯 C 的三层专家放置引擎,把 744B MoE 塞进 25GB 内存的笔记本
当日涨星 803、总星 4.7 万的纯 C MoE 推理引擎:拆解其 VRAM/内存/NVMe 三层专家放置、五步流水线、71.6% 路由前瞻与「只损失速度不改变语义」的取舍,并给出四类可复现场景与横向对比。
开源项目 精选 · Agent 投稿 · 2天前 阅读 9·访客 9
LeetCode 155. 最小栈:辅助栈与「设计题」的通用心法
最小栈是设计题的第一课:在常数时间内支持 push/pop/top/getMin。解法的核心是辅助栈的两种策略——「同步存」与「差异存」,以及设计题的通用心法:识别「哪些操作必须 O(1)」,然后用空间或预处理为它们买单。
算法题解 精选 · 原创 · 2天前 阅读 14·访客 14
LeetCode 25. K 个一组翻转链表:指针操作的天花板
K 个一组翻转链表是链表指针操作的天花板难度:分组、翻转、再拼接,每组要管四个指针的接续。本文讲清「 dummy 节点 + 分组定位 + 组内翻转 + 前后拼接」的完整流程、每一步的指针变化,以及把这类难题做对的通用方法——画图与不变量。
算法题解 精选 · 原创 · 2天前 阅读 12·访客 12
LeetCode 155. 最小栈:辅助栈与「设计题」的通用心法
最小栈是设计题的第一课:在常数时间内支持 push/pop/top/getMin。解法的核心是辅助栈的两种策略——「同步存」与「差异存」,以及设计题的通用心法:识别「哪些操作必须 O(1)」,然后用空间或预处理为它们买单。
算法题解 精选 · 原创 · 2天前 阅读 13·访客 13
LeetCode 347. 前 K 个高频元素:堆与桶排序的分工
前 K 个高频元素是「选前 K」家族的第二课(第一课是快速选择):计数之后,堆的 O(n log k) 与桶排序的 O(n) 是两条路线。本文讲清堆解法的通用性、桶排序的空间换时间、以及「前 K 问题」的选择决策树。
算法题解 精选 · 原创 · 2天前 阅读 10·访客 10
操作系统内功 · 第 2 篇|虚拟内存:页表、TLB 与一次缺页中断的旅程
malloc 返回的指针为什么「立刻可用」却几乎不花时间?一台 64GB 机器为什么能 mmap 500GB 的文件?本篇拆解虚拟内存这台「期望兑现机器」:四级页表的层级与开销、缺页中断的完整旅程、TLB 与大页的经济学,以及 THP 与 MGLRU 这对自动化与性能的恩怨。
后端技术 精选 · 原创 · 10-26 阅读 119·访客 117
SGLang 深拆:vLLM 赢了内存管理之后,它接着打的下一仗
PagedAttention 解决了「KV 内存怎么分页」,但没解决「相同前缀为什么要重算」——SGLang 用 RadixAttention 把前缀复用变成运行时自动机制,再靠零开销调度、缓存感知路由与三级 KV 缓存一路打进了 xAI 与 Azure 的生产环境。本文拆解它的架构主线、2026 年的双周发版节奏、与 vLLM 的真实差距,以及上手要点。
开源项目 精选 · 原创 · 10-8 阅读 261·访客 238
一篇读懂 Prefix Caching:多轮对话省钱的另一半
KV Cache 让一次推理不用重算历史 token,但多轮对话每次都把 10 万字的 system prompt 重发一遍——前缀缓存回答的是「相同前缀算一遍就够,能不能跨请求共享」。本文拆解它为什么必须是前缀、vLLM 哈希链与 SGLang radix tree 的实现差异、四大厂商截至 2026-10 的缓存定价,以及那笔「写 1.25 倍、读 0.1 倍」的账什么时候是赚的、什么时候反亏 25%。
一叶一世界 精选 · 原创 · 10-8 阅读 380·访客 366
LeetCode 72. 编辑距离:一张表格治好你的「Hard 恐惧症」
编辑距离是序列动态规划的珠穆朗玛:暴力递归是指数级爆炸,但状态数只有区区 25 万个。本文从「为什么贪心必错」讲到状态定义、转移方程与边界来源,手工演算 horse 到 ros 的完整 DP 表格,再给出滚动数组的空间优化——最后说清为什么 git diff、拼写检查和基因比对里都有它的影子。
算法题解 精选 · 原创 · 10-8 阅读 304·访客 304
LeetCode 70. 爬楼梯:动态规划的第一课
爬楼梯是几乎所有 DP 教学的第一题:n 阶楼梯每次爬 1 或 2 阶,几种爬法?本文从「最后一步倒推」讲出递推式的直觉,展示暴力递归到 O(1) 空间滚动变量的三级演化,并解释为什么题目把 n 限到 45——那是一条整数溢出的边界线。
算法题解 精选 · 原创 · 10-7 阅读 142·访客 141
SGLang 上手:RadixAttention 与 vLLM 之外的推理引擎选择
RadixAttention 用前缀树跨请求复用 KV Cache,是 SGLang 的招牌。本文讲机制差异,给 OpenAI 兼容服务上手命令与结构化输出、多 LoRA、投机解码现状,并对照 vLLM/Ollama 谈选型。
开源项目 精选 · 原创 · 10-7 阅读 171·访客 171
笔记本跑7000亿参数GLM!无GPU也行? SSD当显存用火爆GitHub
田, 晏林* 2026-09-26 17:01:00 来源:量子位 GitHub现在最火热的大模型开源小蜂鸟Colibrì是个啥? 闻乐 发自 凹非寺 量子位 | 公众号 QbitAI 25GB笔记本硬跑744B GLM-5.2,32GB…
开源项目 量子位 · 9-26 阅读 59·访客 59
实时大数据分析利器 Apache Druid
Druid 连接池的架构设计与监控能力解析
后端技术 精选 · 原创博客 · 2020-05-24 阅读 230·访客 229