C# 使用DLIMPORT,C包装器会比原来的C++库慢吗?
我想在这里创建一个实时人脸分析sdk的包装器。我想知道,当我使用dllImport创建它的包装器时,它会影响库的速度吗?可能不会太大,但这取决于库与托管代码的交互程度 非托管代码的性能不应受到CLR的影响。但是,CLR与非托管代码之间的调用CLR与非托管代码之间的P/Invoke调用和CLR与非托管代码之间的反向P/Invoke调用确实有一些开销,特别是在参数封送和返回值封送方面。在这两者之间传递巨大的结构、数组或字符串通常需要BLITNG或更复杂的封送处理,并且两者都需要时间来处理C# 使用DLIMPORT,C包装器会比原来的C++库慢吗?,c#,c++,C#,C++,我想在这里创建一个实时人脸分析sdk的包装器。我想知道,当我使用dllImport创建它的包装器时,它会影响库的速度吗?可能不会太大,但这取决于库与托管代码的交互程度 非托管代码的性能不应受到CLR的影响。但是,CLR与非托管代码之间的调用CLR与非托管代码之间的P/Invoke调用和CLR与非托管代码之间的反向P/Invoke调用确实有一些开销,特别是在参数封送和返回值封送方面。在这两者之间传递巨大的结构、数组或字符串通常需要BLITNG或更复杂的封送处理,并且两者都需要时间来处理 因此,如果
因此,如果库花费大量时间在非托管环境中搅动,而不与任何CLR代码交互,则性能不应受到影响。如果您必须在短时间内进行大量的进出调用,您可能会注意到,与在本机二进制文件中进行相同的库调用相比,性能有所下降。我可以想出一种方法来找到答案!非常感谢你。在这个库中,只有从C++到CLR的大东西才是毫秒后的实时图像。看完你的答案后,我想我可以轻松地接受它。