主题:为什么调用Fotran生成的.dll文件比直接在Fotran中执行慢?
timwan
[专家分:0] 发布于 2010-05-01 17:54:00
64位C语言中调用Fortran,我用IVF把Fortran做成dll文件然后在C程序中调用它。
但是我发现这种方式比在IVF中单独执行这个Fortran程序段要慢好几倍。
程序段代码一模一样啊,为什么会慢呢?
更奇怪的是,如果我把Fortran程序段改成双精度,那么调用dll来计算和直接在IVF中计算这2种方式的时间就相同了。
最后更新于:2010-05-01 17:58:00
回复列表 (共5个回复)
沙发
yeg001 [专家分:14390] 发布于 2010-05-02 00:10:00
调用比直接使用慢是正常的, 慢几倍... 调用的太频繁?
板凳
timwan [专家分:0] 发布于 2010-05-03 20:58:00
[quote]调用比直接使用慢是正常的, 慢几倍... 调用的太频繁?[/quote]
谢谢!
仅调用一次。
我的意思是指,做成dll的fortran程序段subrutine如果我把它单独做成program来跑,会比在其他程序中调用这个dll跑要快好几倍。
3 楼
yeg001 [专家分:14390] 发布于 2010-05-03 23:30:00
那要请做DLL有经验的朋友回答了.
4 楼
lj1982002 [专家分:430] 发布于 2010-05-12 15:58:00
不会吧,动态的,又不是静态的
5 楼
yeg001 [专家分:14390] 发布于 2010-05-13 09:48:00
按理来讲, 静态连接会比动态连接要来的快吧.
我来回复