Memory
November 22, 2024Less than 1 minute
Memory
Python 有内存池机制,Pymalloc 机制,用于对内存的申请和释放管理。先来看一下为什么有内存池:
当创建大量消耗小内存的对象时,c 中频繁调用 new/malloc 会导致大量的内存碎片,致使效率降低。
内存池的概念就是预先在内存中申请一定数量的,大小相等的内存块留作备用,当有新的内存需求时,就先从内存池中分配内存给这个需求,不够了之后再申请新的内存。这样做最显著的优势就是能够减少内存碎片,提升效率。
查看源码,可以看到 Pymalloc 对于小的对象,Pymalloc 会在内存池中申请空间,一般是少于236kb,如果是大的对象,则直接调用 new/malloc 来申请新的内存空间。