首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#调用DLL是否会大幅度影响程序性能?该怎么解决

2012-01-01 
C#调用DLL是否会大幅度影响程序性能?我使用C#程序用DLLIMPORT调用DLL中的函数。为了比对,我在C++中调用了同

C#调用DLL是否会大幅度影响程序性能?
我使用C#程序用DLLIMPORT调用DLL中的函数。
为了比对,我在C++中调用了同样的函数。
由于是一个视频捕捉的程序,发现c++下能达到15帧,较高画面质量。
但是C#中同样的画面质量,只能达到2-3帧。
这是第三方提供的DLL。
是c#本身得性能没有c++好,还是c#不兼容c++编写的dll呢?
如果我在c++中捕捉视频,然后写成类库把指针传递给c#程序,
能不能达到较好的性能呢?
我还是比较喜欢在dotnet平台中开发,
而且我使用的另一个第三方的类库只提供对c#程序语言的支持。
请高手们指点!

[解决办法]
当然是c#导致了很大的性能下降了
不过这些东西应该可以通过算法修改得到部分改善
[解决办法]
1) 避免大循环里进行函数的PInvoke调用,你可以把循环的逻辑放到C++函数里
2) 用C++/CLI封装一层,而不是直接PInvoke调用,可以明显提高性能

热点排行