【发布时间】:2013-10-08 00:30:35
【问题描述】:
这个奇怪的问题,我知道。
我在 fortran 77 中有一个代码库,它在大多数情况下解析大型非二进制文件,对这些文件进行一些操作,然后进行大量文件写入。代码库不进行任何矩阵操作或数字运算。这个遗留代码是在 fortran 中,因为许多其他代码库确实需要严格的数字处理。这本来只是用fortran写的,因为有fortran的知识。
我的建议是完全用 python 重写它(很可能是 3.3)。 fortran 代码的维护和你想象的一样困难,而且测试也和你想象的一样糟糕。显然 python 在这里会有很大帮助。
在 python 中的文件处理速度方面是否有任何性能影响(甚至提升)?目前该系统的大部分运行时间都在读取/写入文件。
提前致谢
【问题讨论】:
-
对于 I/O 密集型任务,您可能会发现差别不大。不幸的是,任何关于实际性能的猜测都只是猜测。没有先验理由相信 f77 中的文本处理比 Python 更好或更差。
-
很大程度上取决于 I/O 类型,格式化与非格式化。你的情况是哪一个?也就是说,我认为原始 Python I/O 很容易达到峰值,除非是并行文件系统等等。
-
几个月前有一个类似的question。 fortran 最大的问题是,一方面,每个 IO 操作都可能被锁定操作等包围,另一方面,取决于编译器,默认情况下可能不会缓冲输出。归根结底,我不会期望性能收益...
-
非常有帮助的 cmets,谢谢。我会做一些适当的基准测试并为此获得一些数字。很高兴知道没有其他人认为性能会下降
标签: python io migration fortran legacy