将 C# 与 C 函数互操作的性能损失 [关闭]

Posted

技术标签:

【中文标题】将 C# 与 C 函数互操作的性能损失 [关闭]【英文标题】:Performance penalties of interop'ing C# with C functions [closed] 【发布时间】:2012-09-29 14:02:18 【问题描述】:

除非对我的代码进行实际性能测试(我正处于设计阶段),将 C 代码连接到 C# 的普遍共识是什么?什么时候这样做会有成果,什么时候没有?

【问题讨论】:

【参考方案1】:

没有简单的答案。

大多数时候,将参数编组到方法中和从方法中返回的开销可以忽略不计,并且通常远低于函数内部完成的处理(如果它不是一个微不足道的函数)。但是,在一个紧凑的、性能关键的循环中执行此操作可能会违反您的性能限制。

开销本身很大程度上取决于参数的类型和方法的返回值。编组整数比包含包含许多字符串的结构的数组更便宜。

不了解您的用例就无法判断。

【讨论】:

嗯,这有助于思考。我想我会尝试在网上寻找例子,看看我是否能提出一些具体的想法。谢谢。

以上是关于将 C# 与 C 函数互操作的性能损失 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

与 C# 控制台应用程序互操作 C++ (DLL) 的问题

C# 和 C++ 互操作

C# ArrayList 与 C++ 互操作

与 php 和 java 互操作的 C# dll

C++/C# 互操作中的内存映射和 P/Invoke 性能

C#/C++ 回调类(非函数)互操作 - 如何?