为什么用.net和vc6.0调用一个c语言写的函数性能差别会这么大?

qq_24724167 2015-04-03 06:05:42
那个c函数是放在一个dll里的,由一个芯片产商提供,我没有源码,其主要功能是通过usb端口把电脑中的文件放到手机里去.
为了消除其它影响,我先debug到这个函数上,然后计时,结果在vc6.0的环境下运行此函数花了1分20秒,vb.net环境下花了2分20秒,试了几次都这样,为什么差距这么大呢?有没有办法提高.net的运行效率?
...全文
581 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
b_duan 2015-04-26
  • 打赏
  • 举报
回复
.net 要多经过IL一层转换,肯定会慢些,那你这个慢的确实比较多,在.net中多执行一次,看看第二次时间是多少
宝_爸 2015-04-07
  • 打赏
  • 举报
回复
不知道你函数的接口是什么样的,几次函数调用。。 以下来自 这篇文章: https://msdn.microsoft.com/en-us/library/ms235282.aspx PInvoke has an overhead of between 10 and 30 x86 instructions per call. In addition to this fixed cost, marshaling creates additional overhead. There is no marshaling cost between blittable types that have the same representation in managed and unmanaged code. For example, there is no cost to translate between int and Int32.
qq_24724167 2015-04-07
  • 打赏
  • 举报
回复
没人吗, 自己顶一下

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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