擅长:python、mysql、java
<p>为了更精确地解决这个问题,我建议通过将“convertXYZ”设为无操作函数并对结果计时来测量文件读取操作。并测量convert函数,方法是将“read”更改为始终返回一个简单点,但调用转换和输出的次数与实际读取文件的次数相同。(可能还有另一次运行,最终的后转换输出是no-op)根据时间的推移,攻击其中一个可能会更有意义。在</p>
<p>您可以通过将输出写入Python的stdout并让shell执行实际的文件IO,让本地操作系统为您执行一些交错操作。类似地,通过将文件流式传输到stdin(例如,<code>cat oldformat | python conversion.py > outputfile</code>)</p>
<p>输入和输出文件在哪种存储上?与Python代码相比,存储特性对性能的影响可能更大。在</p>
<p>更新:考虑到输出速度最慢,并且存储速度很慢,并且在读和写之间共享,请尝试添加一些缓冲区。从<a href="http://docs.python.org/library/functions.html#open" rel="nofollow">the python doc</a>开始,您应该能够通过向<code>os.open</code>调用添加第三个参数来添加一些缓冲区。试试128*1024这样大的吗?在</p>