引用的 dll 中的方法代码是否有可能内联到我自己的代码中?

发布于 2024-10-19 12:13:54 字数 97 浏览 2 评论 0原文

不久前我读过一些关于“内联”的内容。 .Net 编译器将从小方法中注入代码(内联),以使执行速度更快。

引用的 dll 中的方法代码是否有可能内联到我自己的代码中?

A while ago I've read something about 'inlining'. The .Net compiler will inject code (inline) from small methods to make execution quicker.

Is it possible that code of method from a referenced dll gets inlined in my own code?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

七秒鱼° 2024-10-26 12:13:54

是的,在 JIT 时这是可能的。

不是在编译时。

这意味着您的程序集将仅包含您编写它的代码,但是当它在运行时被 JIT 转换为本机机器代码时,JIT 编译器可能会将其他程序集的小方法内联到您自己的代码中。

Yes, that is possible, at JITting time.

Not at compile time.

Which means that your assembly will only contain the code you wrote it with, but when it is JITted into native machine code at runtime, the JIT compiler might inline small methods from other assemblies into your own code.

我为君王 2024-10-26 12:13:54

是的。如果您不使用 ngen.exe 预编译程序集,则 JIT 编译器可以自动跨程序集内联。

Yes. If you don't pre-compile the assembly using ngen.exe then the JIT compiler can inline across assemblies automatically.

蓦然回首 2024-10-26 12:13:54

准确地说,不会。

但是如果 DLL 的 Lib 可用(DLL 代表动态链接库,我们无法静态链接),则可能会发生这种情况。

自动内联作为优化的一个步骤,仅在小函数或很少使用的函数上执行,但总是在库上执行。

总而言之,静态链接库(Windows 中的 *.lib 或 Unix 中的 .a)可以复制到您的程序中,但动态链接库(Windows 中的 .dll 或 UNIX 中的 *.so)不能复制到您的程序中。 't。

对于 .NET 或类似框架,情况略有不同。

To be precise, No.

But if the Lib of the DLL is available (DLL stands for Dynamically Linked Library, something we can not link statically) it might happen.

Auto inlining as an step of optimization, is only performed on small functions or functions used very rarely, But always on libs.

To conclude, A static link library (*.lib in Windows or .a in Unix) could be copied into your program but a dynamic link library (.dll in Windows or *.so in UNIX) couldn't.

In case of .NET or similar frameworks, the story is a little different.

清眉祭 2024-10-26 12:13:54

一般来说这是很有可能的。
但你不能自己决定,由编译器决定:

检查: http://www.ademiller.com/blogs/tech/2008/08/c-inline-methods-and-optimization/

its generally very possible.
but you cant decide yourself, its the compiler which decides:

check that: http://www.ademiller.com/blogs/tech/2008/08/c-inline-methods-and-optimization/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文