我正在编写一些 python 代码,在不同的点将大文件拼接在一起。我在 C 中做了类似的事情,我分配了一个 1MB 字符数组并将其用作读/写缓冲区。这非常简单:将 1MB 读入 char 数组,然后将其写出。
但是对于 python,我假设它是不同的,每次我调用 size = 1M 的 read() 时,它都会分配一个 1M 长的字符串。希望当缓冲区超出范围时,我们会在下一次 gc 传递中释放它。
python会以这种方式处理分配吗?如果是这样,恒定分配/释放周期的计算成本是否很高?
我可以告诉 python 使用与 C 相同的内存块吗?还是 python vm 足够聪明,可以自己做?
我想我本质上的目标有点像 dd 在python中的实现。