Erlang 编译:“HiPE 目标代码”的混合和“操作码”?

发布于 2024-08-20 01:15:38 字数 185 浏览 1 评论 0原文

是否有可能有一个 VM 实例同时执行 HiPE 代码和通常的基于“操作码”的对象?

这个问题与:Erlang OTP 版本使用 HiPE 进行编译?

Is it possible to have a VM instance that executes both HiPE code and the usual "opcode" based objects at the same time?

This question is related to : Erlang OTP release compiles with HiPE?

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

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

发布评论

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

评论(1

末骤雨初歇 2024-08-27 01:15:38

是的,这就是本机编译器的集成方式。只有那些使用 +native 选项编译的模块才会以本机机器代码执行,其余的模块照常由 BEAM 模拟器解释。当您在以不同方式编译的模块之间进行调用时,就会发生“模式切换”。这样,您就可以无缝地混合本机模块和模拟模块。不过,您应该尝试选择本机编译的模块,以便避免在紧密的、性能关键的循环中进行模式切换,因为每次都会产生很小的开销。

Yes, that is how the native compiler is integrated. Only those modules that are compiled with the +native option are executing in native machine code, and the rest are interpreted by the BEAM emulator as usual. When you make calls between modules compiled in different ways, a "mode switch" happens. This way, you can mix native and emulated modules seamlessly. Still, you should try to select which modules you native compile so that you avoid mode switches in tight, performance critical loops, because there is a small overhead each time.

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