我有这个代码,我在Fortran运行时库选项中用MT
和MD
编译它。我得到的是
MD运行10次:平均5.29秒
使用MT进行10次运行:平均为6.5秒
有人对这种差异有所了解吗?我认为在这种情况下结果应该是相同的,对吗?
program perform implicit none real x,y real*8 t1,t2 integer i call cpu_time(t1) do i=1,1000000000 x=sin(0.1) y=cos(0.2) x=asin(0.2) y=acos(0.5) x=tan(1.2) enddo call cpu_time(t2) print *,t2-t1 end program perform
答案 0 :(得分:1)
MT与Fortran库静态链接。 MD是动态链接的。如果您希望通过MT分发您的程序,您只需要提供该程序。使用MD,您需要提供程序及其使用的Fortran DLL以及这些DLL使用的任何DLL。
您可以通过运行程序依赖(来自http://www.dependencywalker.com/)来查看依赖项。只需删除您的MT版本并查看它使用的DLL。然后删除MD版本并查看它使用的DLL。