Fortran打印声明性能影响

时间:2016-03-10 22:23:24

标签: fortran stdout

我刚刚继承了一些旧的Fortran代码,它在任何地方都有打印语句(运行时,矩阵流)。我知道这些打印声明是无用的,因为我不知道程序打印的内容是如此之快。但是在Fortran程序中有很多打印语句是否会对性能产生重大影响(即过度冗长的程序需要更长时间才能执行)?似乎它会执行另一条线,但我不知道它是否重要。

1 个答案:

答案 0 :(得分:1)

总的来说,是的,I / O是相对昂贵的"要执行,因为你必须做一些事情,比如格式化数字 - 特别是浮点数,即使这些程序是高度优化的。但是,最好的成本之一(在编写缓冲区之后实际执行I / O的系统调用已经准备好)在良好的编译器/运行时中分摊,因为I / O语句通常默认是缓冲的。这有助于显着减少系统调用的数量,从而减少因应用程序和操作系统之间频繁上下文切换而导致的延迟。

那就是说,如果你担心性能下降,为什么不试着评论每个PRINT或WRITE语句,看看运行时是如何变化的?或者甚至更好,分析您的应用程序并查看花在I / O和相关例程上的时间。

相关问题