R包和执行时间

时间:2011-01-21 11:34:58

标签: r compilation package interpreter

我在R中开发了一个很大的函数库。 目前我只是在所有脚本的开头加载(“源代码”)函数。

我已经看到我可以创建包。

我的问题是:这会改善我的功能的执行时间吗? (通过将解释器代码转换为机器语言?)

创建包有什么作用?它会创建二进制文件吗?

由于 fred的

1 个答案:

答案 0 :(得分:14)

还没有R编译器打包你的R代码不会大规模地改善它的执行时间。它也不会为你创建二进制文件 - 你需要从包tarball中构建它们(或者获取CRAN或类似的东西来为你构建它们)。现在有一个字节编译器用于R和R的包现在默认是字节编译的。速度改进通常适度 - 不要指望类似C的速度。

打包R代码就是这么做的;它将R代码,要编译的代码(C Fortran等),手册页,文档,测试等打包成标准格式,可以分发给用户并在多种体系结构上安装/构建。

包可以利用延迟加载之类的东西,这样R对象(你的函数说)只在需要时加载,而source将它们全部加载到全局环境中(默认情况下)。

如果您不打算分发您的代码,那么打包只是为了您自己的使用几乎没有好处,但是如果您打包并编写文档和示例/测试,您可能会收到包裹代码更改的警报。打破示例或导致测试失败。通过这种方式,您可以更好地了解代码的可靠性,即使只是您使用它!