以下代码中的<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/

10-12 12:39
查看更多