回 帖 发 新 帖 刷新版面

主题:为什么调用Fotran生成的.dll文件比直接在Fotran中执行慢?

64位C语言中调用Fortran,我用IVF把Fortran做成dll文件然后在C程序中调用它。
但是我发现这种方式比在IVF中单独执行这个Fortran程序段要慢好几倍。
程序段代码一模一样啊,为什么会慢呢?
更奇怪的是,如果我把Fortran程序段改成双精度,那么调用dll来计算和直接在IVF中计算这2种方式的时间就相同了。

回复列表 (共5个回复)

沙发

调用比直接使用慢是正常的, 慢几倍... 调用的太频繁?

板凳

[quote]调用比直接使用慢是正常的, 慢几倍... 调用的太频繁?[/quote]
谢谢!
仅调用一次。
我的意思是指,做成dll的fortran程序段subrutine如果我把它单独做成program来跑,会比在其他程序中调用这个dll跑要快好几倍。

3 楼

那要请做DLL有经验的朋友回答了.

4 楼

不会吧,动态的,又不是静态的

5 楼

按理来讲, 静态连接会比动态连接要来的快吧.

我来回复

您尚未登录,请登录后再回复。点此登录或注册