gpt4 book ai didi

performance - 为什么没有相关输出时代码似乎没有执行?

转载 作者:行者123 更新时间:2023-12-04 03:04:06 27 4
gpt4 key购买 nike

考虑这个 Fortran 程序:

program main
implicit none

double complex :: a(51,51),b(51,51)
Integer::i,j
real(8)::ht=0.01
real(8) T1,T2

do i=1,51
do j=1,51
a(i,j)=cmplx(Sin(0.01*i),Cos(0.01*j))
end do
end do

call cpu_time(T1)

do i=1,23497
b(:,:)=(0.,1.)*ht/2.*a(:,:)
end do

call cpu_time(T2)

write(*,*) sum(b)
print '("Time = ",f12.9," seconds.")', T2-T1

end program main

输出是

 (-12.4321907340245,3.30723047182099)
Time = 0.052991000 seconds.

如果我们注释掉write(*,*) sum(b),输出为

Time =  0.000000000 seconds.

好像没有执行循环,为什么会这样?

最佳答案

当您删除 write语句,编译器可以看到变量b从未使用过,因此它删除了分配 b 的代码.

一旦完成,它就可以判断变量 a也从未使用过,因此它删除了分配该变量的代码。

那么除了对 cpu_time() 的调用之外什么都没有了。 .

关于performance - 为什么没有相关输出时代码似乎没有执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17934922/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com