有趣的人才能造出好东西

Vibe coding 仙人,什么好玩研究什么,不限于 Python、AI、美食、美景、美人....

  • 130篇文章
  • 5个分类
  • 2019开始写作
江川
江川的黏土风卡通形象:盘腿而坐,短发、黑框眼镜、黑 T 恤

最新文章

全部归档 →
随笔

25. 内存管理漫游-7

关于内存池 pool 的操作已经大致比较清楚了。简而言之就是以 pool 为单位,管理了一系列连续的 block。比 pool 更高一级的是 arena,是 pool 的集合。arena 的结构看起来这样: arena …

阅读全文
随笔

24. 内存管理漫游-6

到目前为止,有关内存池的操作已经大体清楚了: 内存池 pool 的大小正好是操作系统内存页的尺寸:4K; 内存池的结构体在 pool 内存的头部,与其管理的内存连续; 内存池被分割为相同大小的 block,block 大 …

阅读全文
随笔

23. 内存管理漫游-5

现在 Python 中内存分配的最核心组件 pool 的工作原理大致清楚了,在 Python 中存在很多 pool,每个内存池内部有有大小相同的 block,不同内存池的 block 尺寸可能不同。 那么下来就有一个问题 …

阅读全文
随笔

22. 内存管理漫游-4

到目前为止,我们将 Python 管理的连续内存块设置为 4K 的 pool,恰好为多数操作系统的内存分页尺寸,这可以大大的提高操作系统的内存管理性能。如何充分利用这 4K 的内存池就是目前要考虑的问题了,一种简单的做法 …

阅读全文
随笔

21. 内存管理漫游-3

前面已经在 pymalloc alloc 中找到了小内存分配的代码,回顾一下,除了 size 为 0 或者大于 512 Bytes 的内存,都算作小内存,尝试在内存池中分配。按照内存池的设计思路,会预先申请一个 “足够” …

阅读全文
随笔

20. Python 内存管理漫游-2

Python 对内存进行了多层抽象: 0 层就是最基本的 C 库,我们熟悉的 malloc、free 等函数就在这一层; 1 层是对 C 库内存管理接口的封装,基本上只是对 malloc、free 的代理函数,主要是处理 …

阅读全文
随笔

19. Python 内存管理漫游-1

目前已经介绍了两种不可变类型 int 和 string,另外大致了解了一种容器 List,基本类型还差 Dict 没有涉及到,Dict 广泛应用于 Python 的方方面面,我打算稍晚再处理。通过阅读前面三种基本数据类型 …

阅读全文
随笔

18. List 切片

从 List 中删除元素与 pop 类似,只不过会将弹出元素直接删除,内存操作及性能大体相同,不再赘述。 List 通过切片快速截取片段,切片需要指定起、止索引,过程也很简单,实现如下: 切片实际上是从创建原始 List …

阅读全文
随笔

17. 向 List Object append 和 pop 元素

append 向 List Object 任意位置插入数据,只要插入位置不是结尾,那么就需要将插入位置之后的元素后移,因此插入数据的时间复杂度为 O(n)。向数据插入数据有一个特例位置,向尾部追加 append 一个元素 …

阅读全文

所有分类

热门文章

  1. 1
    CUDA 之后,NVIDIA 还有什么?

    市场长期将 CUDA 软件生态视为 NVIDIA 最深的护城河,但随着 Triton 等高级抽象编译框架的普及,底层硬件软件栈正在被“屏蔽”。竞争对手通过单卡算 …

  2. 2
    HBM3到4,发生了什么?

    1. DRAM与内存墙 2017 年,NVIDIA V100 搭载 HBM2 显存,带宽 0.9TB/s,峰值算力 125 TFLOPS。2023 年,H100 …

  3. 3
    如何实现可动态扩展的共享内存池

    开发者通常为了提高内存使用效率,或者避免内存泄漏,需要将内存池化管理。稍复杂一点的系统,一般都会有自己的内存管理机制,我在研读源码的时候,比较习惯先看内存管理模 …

  4. 4
    KNN分类算法经典案例——鸢尾花

    推荐书籍 这是我从大量算法书籍中精心筛选出来的,它 重视算法原理的理解, 用生动的例子替代晦涩的公式证明, 绘图也非常有趣, ​对非专业开发者十分友好​。 我的 …

  5. 5
    封神——傅立叶变换

    封神?一点都不夸张! 如果对所有算法排位,傅立叶变换绝对可以封神。傅立叶变换有多牛?!相当于给人类安了第三只眼!基本上不是人类能搞出来的东西。凡人,准备 …