我目前正在编写一个python脚本来处理非常大的(>;10GB)文件。由于无法将整个文件加载到内存中,我现在逐行读取并处理它:
for line in f:
....
一旦脚本完成,它将经常运行,所以我开始考虑这种读取方式对我的磁盘寿命有什么影响。你知道吗
脚本是否会逐行读取,或者是否存在某种操作系统支持的缓冲?如果不是,我应该自己实现某种中介缓冲吗?击中磁盘实际上是有害的吗?我记得我读过一些关于BitTorrent的文章,正是因为这种按位读/写的方式,而不是处理更大的数据块。你知道吗
在我的测试环境中,我同时使用HDD和SSD,所以答案对这两个系统都很有意思。你知道吗
出于性能原因,OS和Python都使用缓冲区来读取大块数据。从Python中逐行读取文件不会对磁盘造成实质性影响。你知道吗
具体地说,Python不能在不预先扫描以找到行分隔符的情况下给出单独的行,因此它将读取块,解析出单独的行,并且每次迭代都将从缓冲区中提取行,直到必须读取另一个块才能找到下一组行。操作系统通常使用buffer cache来帮助加速I/O。你知道吗
相关问题 更多 >
编程相关推荐