Mig*_*uel 11 c# performance c++-cli dllimport native-code
早上好,
我正在编写一个拼写检查程序,对于这种情况,它是性能关键的.既然如此,由于我打算连接到数据库并使用C#创建GUI,我在C中编写了一个编辑距离计算例程,并编译为我在C#中使用的DLL DllImport.问题是,我认为(虽然我可能是错误的),其编组字一个一个从String到char *导致大量的开销.就是这样,我考虑使用C++/CLI以便我可以String直接使用.NET中的类型...我的问题是,C++/CLI性能如何与用于繁重数学计算和数组访问的本机C代码相比较?
非常感谢你.
C++/CLI 也必须进行某种形式的编组。
像所有与性能相关的问题一样,您应该测量和优化。您确定 C# 的速度不足以满足您的目的吗?不要低估 JIT 编译器将要做的优化。不要在没有尝试的情况下仅仅为了管理而猜测语言实现的开销。如果这还不够,您在尝试非托管代码之前是否考虑过不安全的 C# 代码(带有指针)?
关于 C++/CLI 的性能概况,它实际上取决于它的使用方式。如果使用 ( /clr:pure) 编译为托管代码 (CIL),则它与 C# 不会有很大不同。C++/CLI 中的本机 C++ 函数将具有与普通 C++ 类似的性能特征。在本机 C++ 和 CLI 环境之间传递对象会产生一些开销。