Fortran Coder

标题: FORTRAN 随机存储和读取文件中指定位置数据 [打印本页]

作者: duty    时间: 2014-3-15 07:12
标题: FORTRAN 随机存储和读取文件中指定位置数据
求大神指点快速随机存储和读取文件中指定位置数据的方法?
用了
OPEN(UNIT=IOFRM,ACCESS='DIRECT',STATUS='SCRATCH',FORM='UNFORMATTED',RECL=16)

存储和读取速度都非常慢~

作者: fcode    时间: 2014-3-15 07:39
无格式直接方式读取,是最快的方式了。如果你还想加快,恐怕只有在硬件和操作系统方面寻求突破了。
比如:
1.关闭杀毒软件,及其他有文件读写的程序。
2.选用新的硬盘接口。
3.选用新的固态硬盘。

另外,我不明白你说的随机存储是什么意思。
作者: 珊瑚虫    时间: 2014-3-15 10:01
补充一下,还可以用内存虚拟硬盘(ramdisk),利用软件将物理内存进行分割,将一部分内存通过虚拟技术转变为硬盘提升数据读取速度。
作者: duty    时间: 2014-3-16 01:14
fcode 发表于 2014-3-15 07:39
无格式直接方式读取,是最快的方式了。如果你还想加快,恐怕只有在硬件和操作系统方面寻求突破了。
比如:
...

我说的随机的意思是文件中存储了1000行7列数据,我可以直接用READ,WRITE操作第77行,第3列的数据~
作者: duty    时间: 2014-3-16 02:01
fcode 发表于 2014-3-15 07:39
无格式直接方式读取,是最快的方式了。如果你还想加快,恐怕只有在硬件和操作系统方面寻求突破了。
比如:
...

如下代码,有没有优化的建议
Code.for (580 Bytes, 下载次数: 37)

谢谢大神指点

作者: fcode    时间: 2014-3-16 08:41
你说的随机,其实就是直接读取的概念。ACCESS='DIRECT'

这代码虽然不太规范,但执行效率应该没有太大改善余地了。
作者: duty    时间: 2014-3-16 10:22
fcode 发表于 2014-3-16 08:41
你说的随机,其实就是直接读取的概念。ACCESS='DIRECT'

这代码虽然不太规范,但执行效率应该没有太大改善 ...

那顺序读取和直接读取哪一个效率高?
作者: fcode    时间: 2014-3-16 10:39
duty 发表于 2014-3-16 10:22
那顺序读取和直接读取哪一个效率高?

无格式比有格式效率高。
直接读取比顺序读取效率高。

所以,在语法层次上,你的读写方式应该是瓶颈了。
作者: shengya321    时间: 2020-11-16 17:21
学习了学习了学习了




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2