【问题标题】:What is faster/more efficient, read/write to file or to io file like object?什么是更快/更高效,读/写文件或像对象一样的 io 文件?
【发布时间】:2020-06-05 21:03:15
【问题描述】:

我正在处理一些大型音频文件 (~500MB),其中涉及大量处理和转换。其中一个步骤涉及写入文件,通过网络发送文件,然后在到达时读取文件,然后根据某些逻辑保存文件。 由于网络部分对我来说无关紧要,我想知道什么是更快或更高效,读写实际文件,或像对象一样的 io 文件。

此外,性能差异有多大(如果有的话)。

我的直觉会说 io 对象会更有效率,但我不知道这两个过程是如何工作的。

【问题讨论】:

    标签: python file io


    【解决方案1】:

    io 类文件对象已被创建以避免创建您不想存储的临时文件,只是为了能够传递给其他模块并“愚弄”它们相信它们是实际的文件句柄(有一些限制,但大多数情况下都可以)

    所以是的,使用io.BytesIO 对象会更快,即使使用 SSD 驱动器,读取/写入 RAM 也会胜出。

    类 io.BytesIO([initial_bytes])

    使用内存字节缓冲区的流实现。

    现在如果数据非常大,你就会内存不足或者会出现交换机制。所以你可以存储在内存中的数据量是有限制的(我记得旧的音频编辑软件能够做到“直接到磁盘”正是因为这个原因:当时内存是有限的,这是不可能的在内存中存储几分钟的音频数据)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多