以下代码中的<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>
另外,您可以在自己的
R_COMPILE_PKGS=3
中设置.Renviron
,这将在安装时对包进行字节编译。假设您正在从源代码安装软件包。关于r - R的内置函数定义中<bytecode:#>的含义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36796402/