以下代码中的<bytecode: 0x02b59ae4>
是什么意思?
> nchar
function (x, type = "chars", allowNA = FALSE, keepNA = FALSE)
.Internal(nchar(x, type, allowNA, keepNA))
<bytecode: 0x02b59ae4>
<environment: namespace:base>`
对任何事情都有用吗?
答案 0 :(得分:5)
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>
或者,您可以在R_COMPILE_PKGS=3
中设置.Renviron
,并在安装时使用字节编译包。这假设您要从源代码安装软件包。