我想知道在我的python代码中是否有任何东西可以做,这使i/o
更友好?以磁盘友好的方式将数据写入磁盘?
我知道,默认情况下,open()
使用启发式确定的缓冲区,磁盘的大小为blocksize
。
据我所知,这只能确定数据刷新到磁盘缓存的时间。它是否正确?
我有以下情形:
我挂钩到其不断流数据的各种WebSockets的。我需要将这些数据写入磁盘。最理想的情况是,尽可能在接收和i/o
动作之间尽可能少地延迟,而不要用i/o
命令来谋杀我的磁盘。
我已经使用单线程来写入所有数据,而不是从各个线程(as has been pointed out here)中删除数据。但是我想知道将缓冲区设置为除default
之外的其他任何内容是否合理?
我意识到负载无论如何都会令人望而生畏,但是我很好奇,是否有任何最佳实践对磁盘友好,当为这种场景编写Python代码时。
目前,我只是在做这样的:
with open(file, 'wb') as f:
f.write("stuff")
硬盘和操作系统的缓存/缓存是您最便宜的优化,我会说 - 你确定你在优化你的代码之前已经进行了优化? – tiwo
“最理想的情况是,尽可能少的接收和I/O动作之间的延迟”听起来很软。为什么你需要快速的I/O操作? – tiwo
可能相关:https://stackoverflow.com/questions/32748231/preferred-block-size-when-reading-writing-big-binary-files –