内存池机制Python的内存机制是以什么进行操作的?

【Python面试真题】-内存池机制Python的内存机制是以什么进行操作的?</h4

内存池机制Python的内存机制以金字塔行,-1,-2层主要有操作系统进行操作,

 第0层是C中的malloc,free等内存分配和释放函数进行操作;

 第1层和第2层是内存池,有Python的接口函数PyMem_Malloc函数实现,当对象小于256K时有该层直接分配内存;

 第3层是最上层,也就是我们对Python对象的直接操作;

在 C中如果频繁的调用malloc与free时,是会产生性能问题的.再加上频繁的分配与释放小块的内存会产生内存碎片.Python在这里主要干的工作有:

如果请求分配的内存在1~256字节之间就使用自己的内存管理系统,否则直接使用malloc.

这里还是会调用 malloc分配内存,但每次会分配一块大小为256k的大块内存.

经由内存池登记的内存到最后还是会回收到内存池,并不会调用C的free释放掉.以便下次使用.对于简单的Python对象,例如数值、字符串,元组(tuple不允许被更改)采用的是复制的方式(深拷贝?),也就是说当将另一个变量B赋值给变量A时,虽然A和B的内存空间仍然相同,但当A的值发生变化时,会重新给A分配空间,A和B的地址变得不再相同

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。
超哥软件库 » 内存池机制Python的内存机制是以什么进行操作的?