program main
implicit none
real*16::x=1.0/3.0q0
real*16::y=1.0/5.0q0
integer i
REAL*4 :: T1,T2
CALL TTIME(T1)
open(unit=10,file='xx.dat')
do i=1,1000000
write(10,*)x
enddo
CLOSE(10)
CALL TTIME(T2)
WRITE(*,*)'写文件耗时:',T2-T1
CALL TTIME(T1)
open(unit=10,file='xx.dat')
do i=1,1000000
write(10,*)y
enddo
CLOSE(10)
CALL TTIME(T2)
WRITE(*,*)'写文件耗时:',T2-T1
pause
end
SUBROUTINE TTIME(T)
REAL(4) T,TA(2)
T=ETIME(TA)
END SUBROUTINE
未命名.JPG (24.24 KB, 下载次数: 913)
program main
implicit none
real*16::x=1.0/3.0q0
real*16::y=1.0/5.0q0
integer i
REAL*4 :: T1,T2
CALL TTIME(T1)
open(unit=10,file='x:\xx.dat',status='old') !// 旧文件
do i=1,1000000
write(10,*)x
enddo
CLOSE(10,status='delete') !// 删除旧文件
CALL TTIME(T2)
WRITE(*,*)'写文件耗时:',T2-T1
CALL TTIME(T1)
open(unit=10,file='x:\xx.dat',status='new') !// 新建文件
do i=1,1000000
write(10,*)y
enddo
CLOSE(10)
CALL TTIME(T2)
WRITE(*,*)'写文件耗时:',T2-T1
pause
end
SUBROUTINE TTIME(T)
REAL(4) T,TA(2)
T=ETIME(TA)
END SUBROUTINE
chuxf 发表于 2014-2-26 22:23
我倒不觉得是因为文件里是否存在内容而引起的效率差别。
个人认为是硬盘缓存惹的祸。(这个取决于操作系统 ...
chuxf 发表于 2014-2-27 09:54
流文件是二进制的,本身尺寸就要比文本方式小,输出量就少很多。
另外,内存里的数据是二进制的,直接二进 ...
欢迎光临 Fortran Coder (http://bbs.fcode.cn/) | Powered by Discuz! X3.2 |