管理中的非管理Vs.纯粹的非管理



由托管代码(c#)操作的非托管代码(CPP)是否具有与由另一个非托管代码操作的相同性能(堆栈是否操作相同等)?

。-如果我从myc中调用MyCppApp中的代码,它是否具有与从MyCpp2App调用相同的性能?

我知道互操作操作的代价,但把这些放在一边,我的问题是关于CPP代码执行本身的性能。

谢谢,S

一旦控件在非托管代码中,由托管代码调用的事实对CPU的操作没有任何影响。无论调用者是谁,CPU都执行相同的指令。事实上,CPU没有"调用者"的概念。

因此,无论谁调用代码段,性能都是相同的。(假设呼叫成本为零)

可以,但请记住,调用非托管应用程序可能需要更长的时间,因为需要将数据从托管缓冲区复制到非托管缓冲区。

这是。net和COM互操作的问题之一——问题在于为了离开托管环境而必须执行的指令数量(约50条)——这使得整个过程有些缓慢。

还需要注意,在最终阶段,托管代码将通过JIT编译转换为适当的机器码。

相关内容

  • 没有找到相关文章

最新更新