【发布时间】:2011-03-19 01:46:57
【问题描述】:
我有一个超高性能的 C/C++ 数据结构 (see here!),我想在我的 C# 程序中访问和使用它。
想象一下 C/C++ 数据结构有一个公共 API(get、add、delete 等)。
如何在 C# 中以高性能方式多次调用这些方法?
PS 在你批评我使用“C/C++”这个短语之前...
在我看来,C/C++ 不同于 C 和 C++ 编程语言。我不知道 C++,而是对 C 的扩展,它使用了一些 C++ 结构并且可以用 C++ 编译器编译!
【问题讨论】:
-
我怀疑你会比框架中包含的内容更快地实现任何目标。当您在托管和非托管代码和值之间进行封送处理时,您会遇到巨大的性能损失。
-
@Daniel A. White:是的,这就是我担心的问题,尤其是因为 map 方法被调用了 lot 次。这种表现是不可避免的吗?如果我在 C# 中使用unsafe关键字会怎样? -
丹尼尔是正确的。您最好将集合移植到 C#。您的 C# 实现可以使用
unsafe,但几乎可以肯定不需要。 -
是的,我想我会向 C 端推送更多代码,并尽量减少 C# 端必须进行的调用。