<字节码的含义:R 内置函数定义中的 #>

  • 本文关键字:定义 函数 内置 字节 r
  • 更新时间 :
  • 英文 :


下面的代码中的<bytecode: 0x02b59ae4>是什么意思?

> nchar
function (x, type = "chars", allowNA = FALSE, keepNA = FALSE) 
.Internal(nchar(x, type, allowNA, keepNA))
<bytecode: 0x02b59ae4>
<environment: namespace:base>`

它对任何事情有用吗?

bytecode 语句表示该函数已由compiler包进行字节编译。所有基本 R 函数都经过字节编译。字节编译函数几乎总是比非编译版本快。

如果包的 DESCRIPTION 文件中有ByteCompile: true,则包中的所有函数都将进行字节编译。

如果需要,您可以编译自己的函数:

f = function(x) x
f_cmp = compiler::cmpfun(f)
f
# function(x) x
f_cmp
# function(x) x
# <bytecode: 0x7f371a8>

或者,您可以在.Renviron中设置R_COMPILE_PKGS=3,这将在安装时对包进行字节编译。这假定您正在从源代码安装包。

最新更新