web*_*ppl 1 variables performance fortran arguments
我正在编写一个涉及大量指数函数调用的Fortran程序.我发现当exp()函数的参数是变量时,计算速度比使用常量值作为函数参数慢20多倍.例如,在以下两个示例程序中,程序A比程序B慢得多.
program A
real a,b
integer i
a=1.234
do i=1,100000000
b=exp(a)
end do
stop
end program A
Run Code Online (Sandbox Code Playgroud)
=====================
program B
integer i
real b
do i=1,100000000
b=exp(1.234)
end do
stop
end program B
Run Code Online (Sandbox Code Playgroud)
当使用变量作为exp()函数参数是不可避免的时候,如何提高exp()计算效率?
一些编译器可以在编译时评估应用于常量的内部函数.因此,在这种情况下评估内在函数没有运行时间成本.显然,这不能用于真正的变量,因为直到运行时才会知道这些值.
| 归档时间: |
|
| 查看次数: |
863 次 |
| 最近记录: |