从VB.net调用本地c ++ dll运行速度比从本机.exe调用运行速度慢

Dan*_*iel 10 .net c++ vb.net dll c++-cli

我在本机C++(Visual C++ 2010)中有一些代码来处理一些GB的文件.我将它编译为.exe,大约需要8分钟.但是我需要从Visual Basic .net接口调用它,所以我将它放在.dll中并创建了一个c ++/cli包装类来在本机dll中调用我的代码.托管代码和本机dll之间唯一的交互是调用启动处理的函数.令我惊讶的是,处理所需的时间几乎是.exe方式的两倍.我不是VB.net的专家,所以也许有一些设置或什么东西要看,我不知道.欢迎任何想法.提前致谢.

har*_*ath -1

.NET 框架在从“托管”代码与本机或“非托管”代码进行通信时会产生一些开销。 请参阅此处了解一些背景信息。

因此,您所看到的性能方面正是我所期望的一般情况。如果本机 DLL 执行更多工作,我预计通信开销(效率损失)会更低。