python在使用python的数据结构时有很大的开销吗?

时间:2018-06-18 02:44:04

标签: python heap

与非脚本语言(如C)相比, python 广泛使用数据结构,如List,Set,Dictionary或与动态内存相关的任何内容。

但是,据我所知,所有这些数据结构都在堆内存中分配。另外,在这些数据结构中,在python应用程序中经常使用追加和删除,这可能类似于频繁使用C&C的malloc,free或调整malloc的大小。

似乎所有这些行动都会造成巨大的开销。

python是否使用特殊优化?或者它不会产生开销吗?

1 个答案:

答案 0 :(得分:1)

在Python中(与许多其他语言的标准库一样),这些动态数据结构的实现方式是通过重复调用append和delete来分摊内存分配的成本。因此,例如,列表按其大小按比例过度分配内存,如implementation中所述。