主题:在FORTRAN中如何实现测试某段程序的运行时间?
Houston
[专家分:10] 发布于 2005-03-04 19:49:00
问题如上,用什么方法可以实现呢?[em2]
回复列表 (共13个回复)
沙发
mltx [专家分:20880] 发布于 2005-03-05 01:50:00
用F90的system_clock固有子程序。
板凳
Houston [专家分:10] 发布于 2005-03-05 16:02:00
多谢楼上的兄弟
昨晚我试了一下
CALL GETTIM(tmphour, tmpminute, tmpsecond, tmphund)
还不错,能得到当前的时间
跟C相比不同的是这个需要四个变量来存当前的时间
而C只要一个变量就OK了
所以计算时间差的时间不太好办
3 楼
mltx [专家分:20880] 发布于 2005-03-05 18:02:00
用system_clock:
integer :: time(0:1),timediff
call system_clock(time(0))
...
...
call system_clock(time(1))
timediff = time(1)-time(0) ! 单位多为1/100秒
4 楼
Houston [专家分:10] 发布于 2005-03-05 22:09:00
看来这个只能对FORTRAN90程序适用
对FOR77应该不行吧
5 楼
mltx [专家分:20880] 发布于 2005-03-06 11:05:00
只要编译器支持f90的功能就可以。试一下就知道了。
6 楼
frankey8008 [专家分:0] 发布于 2005-04-07 10:19:00
请问 用固有子例行程序cpu time 可以吗?
我只是在一本书上看到过,没用过啊,请高人指点![em3][em3][em3]
7 楼
mltx [专家分:20880] 发布于 2005-04-07 19:35:00
cpu_time是f95的函数,system_clock从f90就有了,所以用得较早也较多。
两个都可以,差不太多。自己试试就知道了。
8 楼
gengwoba [专家分:20] 发布于 2005-06-15 10:06:00
mltx老兄你提供的这种方法好像是计算完成后才能得到时间呀
我没试过,只是看你给出的程序猜测的,错的话别见怪呀
有没有程序
只需要编译后就能知道大体的计算时间呀
9 楼
mltx [专家分:20880] 发布于 2005-06-15 12:04:00
no way.
10 楼
gengwoba [专家分:20] 发布于 2005-09-02 23:51:00
其实记着你开始运行程序的时间
还有程序运行完后输出文件的生成时间
两个时间相减就是程序运行的时间了!
我来回复