C#调用DLL是否会大幅度影响程序性能?

mohyu 2008-11-28 12:39:53
我使用C#程序用DLLIMPORT调用DLL中的函数。
为了比对,我在C++中调用了同样的函数。
由于是一个视频捕捉的程序,发现c++下能达到15帧,较高画面质量。
但是C#中同样的画面质量,只能达到2-3帧。
这是第三方提供的DLL。
是c#本身得性能没有c++好,还是c#不兼容c++编写的dll呢?
如果我在c++中捕捉视频,然后写成类库把指针传递给c#程序,
能不能达到较好的性能呢?
我还是比较喜欢在dotnet平台中开发,
而且我使用的另一个第三方的类库只提供对c#程序语言的支持。
请高手们指点!
...全文
800 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
mohyu 2008-11-28
  • 打赏
  • 举报
回复
请问sunshine_anycall

那如果我在c++中捕捉视频,然后写成类库把指针传递给c#程序,
是不是能达到较好的性能呢?
sunshine_anycall 2008-11-28
  • 打赏
  • 举报
回复
当然是c#导致了很大的性能下降了
不过这些东西应该可以通过算法修改得到部分改善
hanyu0528 2008-11-28
  • 打赏
  • 举报
回复
学习~!!
mohyu 2008-11-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bloodish 的回复:]
1) 避免大循环里进行函数的PInvoke调用,你可以把循环的逻辑放到C++函数里
2) 用C++/CLI封装一层,而不是直接PInvoke调用,可以明显提高性能
[/Quote]

是的,我学要在c#中做一个图像像素数*3的循环,一般是1280*960*3次,每秒15次

可是我在c++中也做同样的事情,差这么多?
hernmmy 2008-11-28
  • 打赏
  • 举报
回复
C++本来就是比较接近真正接近源代码之类的了,C#要监听的东东太多了,效果当然没有C++好
钛元素 2008-11-28
  • 打赏
  • 举报
回复
c#的图形处理性能不高...
ericllzh 2008-11-28
  • 打赏
  • 举报
回复
你是做摄像头面部识别啊?
我也想做啊。
但研究C++的时候不是很深。
qiying1988 2008-11-28
  • 打赏
  • 举报
回复
学习
tianjinldl 2008-11-28
  • 打赏
  • 举报
回复
帮顶
panzi667 2008-11-28
  • 打赏
  • 举报
回复
学习一下
bloodish 2008-11-28
  • 打赏
  • 举报
回复
1) 避免大循环里进行函数的PInvoke调用,你可以把循环的逻辑放到C++函数里
2) 用C++/CLI封装一层,而不是直接PInvoke调用,可以明显提高性能
bloodish 2008-11-28
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 mohyu 的回复:]
引用 4 楼 bloodish 的回复:
1) 避免大循环里进行函数的PInvoke调用,你可以把循环的逻辑放到C++函数里
2) 用C++/CLI封装一层,而不是直接PInvoke调用,可以明显提高性能


是的,我学要在c#中做一个图像像素数*3的循环,一般是1280*960*3次,每秒15次

可是我在c++中也做同样的事情,差这么多?
[/Quote]

C#做图像处理不是好的选择,以前读书的时候也跟导师做图像方面的应用.
写写测试代码可以,真正要做工程的话,图像处理的实现还是C++好
你可以试一下非安全代码来处理,一个Pixel一个Pixel处理实在没效率.
mohyu 2008-11-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sunshine_anycall 的回复:]
当然是c#导致了很大的性能下降了
不过这些东西应该可以通过算法修改得到部分改善
[/Quote]

光是这个函数执行就要300ms,还要加上跟跟踪和标定的算法,每秒能有2帧不错了。完全达不到要求。

但是c++表现得很完美,加上其他算法得耗时,帧数下降1-2帧,可以接受。

可是,可是!我要使用得另一个第三方得类库只支持dotnet,另外我mfc不行,

所以还是想用c#开发,没想到他的性能这么差

真的是c#性能差么?还是我不得要领?

111,130

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧