首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >格式化与未格式化文件写入

格式化与未格式化文件写入
EN

Stack Overflow用户
提问于 2016-11-08 14:02:31
回答 1查看 920关注 0票数 0

我经常观察到,在Fortran 90中,未格式化的文件写入(如下图所示)比格式化的文件写入(也如下面所示)要快得多。

未格式化文件写入

代码语言:javascript
复制
   OPEN ( Unit=86, File='out.dat', Form='unformatted', Action='Write')
   WRITE (86) A, B, C
   CLOSE (86)

格式化文件写入

代码语言:javascript
复制
   OPEN ( Unit=86, File='out.dat', Form='formatted', Action='Write')
   DO ii = 1,N
        DO jj = 1,N
            WRITE (*,86) A(ii,jj), B(ii,jj), C(ii,jj)
        END DO
   END DO
   CLOSE (86)

其中A,B,C是二维尺寸数组(N,N).我发现在这种情况下,CPU_Time的差异在12s左右。

为什么会有很大的不同?这仅仅是格式化过程中循环所花费的时间吗?

EN

回答 1

Stack Overflow用户

发布于 2016-11-08 14:18:43

注意,在一种情况下,您首先编写了整个A,然后编写了整个B,然后编写了整个C。在第二个例子中,您正在编写A11、B11、C11、A21、B21、C21、.这是不同的,但影响很小。

将数字从二进制内存表示转换为人类可读的数字需要花费大量CPU时间。这主要是使其在格式化情况下更慢的原因。此外,文件更大,因此编写它需要更多的时间。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40488891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档