45. Set 是如何工作的(1)
Set 的功能其实与 Dict 的 Key 非常相似: 不可重复; 需要快速查找; 一些文章中认为 Set 是 Value 为空的 Dict,在逻辑上大体没问题,但具体实现还是有很大区别的。 PySetObject 的结 …
阅读全文Vibe coding 仙人,什么好玩研究什么,不限于 Python、AI、美食、美景、美人....

Set 的功能其实与 Dict 的 Key 非常相似: 不可重复; 需要快速查找; 一些文章中认为 Set 是 Value 为空的 Dict,在逻辑上大体没问题,但具体实现还是有很大区别的。 PySetObject 的结 …
阅读全文TupleObject 是 Python 中另外一种常用对象,尤其是赋予了函数返回多个对象的能力。Tuple 可以看作是 “只读” 版本的 List,在最底层的 Object 数组操作上二者有异曲同工之妙,加上 …
阅读全文Python 中大量使用了小 Dict 对象,与前面提到的一些基本类型类似,除了利用内存池提高内存分配的效率,Dict 也实现了 Dict 结构体的缓存池,实现对 Dict 结构体的复用,其定义: 可以看到 Dict 的 …
阅读全文目前已经对 Dict 的增查改删有了比较清晰的认识,对 Dict 的增删环节一直有一个细节没有澄清: dk entries 是如何伸缩的? 对 Dict 的内存伸缩过程理解了,才能真正搞清 dict.keys() 的顺序 …
阅读全文最近在网上看到这样一个问题,大意是: is dic.items() == zip(dict.keys(), dict.values()) ? 这是一个有意思的问题,类似的问题还有: dict.keys() 和 …
阅读全文删除字典中的 K V 是更新字典最常用的操作,与设置已有 K V 类似,在执行一切操作之前,需要先找到目标 dk entries。我们知道字典的搜索函数是一个指针,以便在不同时期切换合适的搜索函数。通过搜索函数找到目标 …
阅读全文Dict 最重要的是 Key 的搜索,上一节已经大致搞清楚了搜索过程。Python 的搜索函数指针被保存在 ma keys dk lookup 中,而 dk lookup 可能的取值有: lookdict …
阅读全文前一节以一个非常简单的例子,了解想 Dict 插入 K V 的过程,简而言之: dk indices 作为哈希表实现快速查询 Key; dk entries 是 K V 真实的栖身之所,就是一个数组; 哈希表中可能出现碰 …
阅读全文上一节大致搞清楚了 Dict Object 的结构, 相比 《源码剖析》中陈儒先生研究的 2.5 版本,最新的 3.8 版本字典结构稍显复杂。不过,无论 Dict 的结构如何变化,其核心逻辑没有发生本质变化。今天剖析 …
阅读全文需要注意的是 3.8 版本实现中,Dict 的结构较之前版本有一些调整。 其中 PyObject HEAD 是所有 Python 对象必备的元信息;ma version tag 会随着对 Dict 类的操作而自增,表示是 …
阅读全文市场长期将 CUDA 软件生态视为 NVIDIA 最深的护城河,但随着 Triton 等高级抽象编译框架的普及,底层硬件软件栈正在被“屏蔽”。竞争对手通过单卡算 …
1. DRAM与内存墙 2017 年,NVIDIA V100 搭载 HBM2 显存,带宽 0.9TB/s,峰值算力 125 TFLOPS。2023 年,H100 …
开发者通常为了提高内存使用效率,或者避免内存泄漏,需要将内存池化管理。稍复杂一点的系统,一般都会有自己的内存管理机制,我在研读源码的时候,比较习惯先看内存管理模 …
推荐书籍 这是我从大量算法书籍中精心筛选出来的,它 重视算法原理的理解, 用生动的例子替代晦涩的公式证明, 绘图也非常有趣, 对非专业开发者十分友好。 我的 …
封神?一点都不夸张! 如果对所有算法排位,傅立叶变换绝对可以封神。傅立叶变换有多牛?!相当于给人类安了第三只眼!基本上不是人类能搞出来的东西。凡人,准备 …