自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 Rust `LinkedList` 的双向链表结构深度解析

对于系统程序员而言,Rust 标准库里的既熟悉又“陌生”:接口与传统语言的链表无异,但内部实现却充满了 Rust 式的安全设计。本篇文章将以双向链表为主线,解析LinkedList的节点结构、指针管理、迭代器设计和常见实践,并指出它在工程中的利弊取舍。全文约 1500 字(不含代码块),适合有 Rust 基础、希望深入理解底层实现和性能特性的读者。

2025-10-30 09:47:10 675

原创 Rust `BTreeMap` 与(非)红黑树实现深度解析

Rust 的BTreeMap并非红黑树,而是基于 B-Tree 实现。通过多键节点、控制数组和 Robin Hood 风格的局部调整,它在缓存局部性、范围查询和遍历方面展现出显著优势。理解其节点结构、插入/删除机制以及迭代器的实现,有助于在高性能场景中正确取舍。认识到BTreeMap的 B-Tree 本质;在需要排序或范围操作的场景优先选用;善用 NodeRef 与底层 API,避免不必要的复制;根据业务模式调节插入顺序和内存布局。掌握这些知识后,我们便可以在 Rust 项目中更自信地利用。

2025-10-30 09:45:18 504

原创 Rust HashMap 的哈希算法与冲突解决深度解析

map解释FxHasher是一种基于 xxHash 的快速哈希函数,常用于编译器内部。我们通过指定构造器,在可信输入场景下显著降低哈希开销。FxHasher不具备 SipHash 的安全性,因此只建议在性能敏感且无对抗风险的代码中使用。

2025-10-30 09:43:40 1065

原创 String 与 \&str 的内部实现差异深度解析

使用&str作为只读输入参数,减少复制;需要所有权时再显式转为String。在热路径上拼接文本,提前评估目标长度并,有效控制扩容次数。注意String与&str之间的生命周期关系,合理选择借用或所有权转移。跨语言或跨线程时,确认 UTF-8 不变量与内存归属,必要时采用Cow<str>或自定义分配器。定期通过基准测试和内存分析工具验证优化效果,避免主观臆测。掌握String与&str的内部机制,就能在工程实践里更从容地处理文本:既维持 Rust 一贯的内存安全,又把握住性能优化的主动权。

2025-10-30 09:40:49 917

原创 Rust Vec 的内存布局与扩容策略深度解析

Rust 允许通过和Allocatortrait 指定分配器。对于实时系统或需要对齐到巨大页面(Huge Page)的场景,可以实现一个按需对齐的分配器。例如在高性能网络程序中,把Vec<u8>的内存放到hugepage上,可降低 TLB miss,提升带宽利用率。需要权衡的是实现复杂度、跨平台兼容性以及内存碎片问题。当你确实要替换分配器时,建议先用统计信息评估Vec的峰值与平均容量,再决定是否值得投入。例如给长生命周期的Vec配置 slab 分配器,短生命周期的Vec。

2025-10-30 09:38:34 750

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除