看完这个问题后,Erlang 是集群计算世界的 C 吗?,我想知道官方的 Erlang OTP 是用 HiPE 编译的吗?
换句话说,当我.erl
使用 OTP 版本 R13(例如)编译我的源代码时,它是否会产生“目标代码”BEAM?
查看http://www.it.uu.se/research/group/hipe/,似乎不再维护独立的 HiPE 编译器。
看完这个问题后,Erlang 是集群计算世界的 C 吗?,我想知道官方的 Erlang OTP 是用 HiPE 编译的吗?
换句话说,当我.erl
使用 OTP 版本 R13(例如)编译我的源代码时,它是否会产生“目标代码”BEAM?
查看http://www.it.uu.se/research/group/hipe/,似乎不再维护独立的 HiPE 编译器。
默认情况下,HiPE 不用于编译 OTP。然而,众所周知,OTP 库可以使用 HiPE 成功编译,通常会带来一些性能提升(尽管这取决于您的应用程序)。
当您erlc
在.erl
文件上运行时,它会生成 BEAM 文件,该文件不会使用 HiPE 编译为本机代码。要.erl
使用 HiPE 将文件编译为本机代码,只需运行erlc +native file.erl
.
不再维护独立的 HiPE 编译器,因为它包含在核心 Erlang/OTP 发行版中。
我认为这取决于您在编译 Erlang 编译器时传递给配置脚本的选项。它当然可以包含它,但默认情况下是否包含它是另一个问题。