我想创建一个位于איך אפשר לראות עברית ב的实时面部分析sdk的包装器。我想知道当我使用dllImport创建它的包装器时,它会影响库的速度吗?
答案 0 :(得分:2)
可能并不重要,但这取决于库与托管代码的交互程度。
非托管代码的性能不应受CLR的影响。但是,CLR和非托管代码之间的调用(P / Invoke调用(CLR到非托管)和反向P / Invoke调用(非托管到CLR))确实有一些开销,特别是在参数和返回值编组时。在两者之间传递巨大的结构,数组或字符串通常需要blitting或更复杂的编组,并且都需要时间来处理。
因此,如果图书馆花费大量时间在非托管土地上搅拌而不与任何CLR代码交互,则不应影响性能。如果您需要在很短的时间内进行大量的调用和调出,那么与使用本机二进制文件调用相同的库调用相比,您可能会注意到性能下降。