R包和执行时间

标签 r compilation package interpreter

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

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

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

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

谢谢
弗雷德

最佳答案

还没有R编译器打包您的R代码不会大大提高其执行时间。它还不会为您创建二进制文件-您需要从tarball软件包中构建二进制文件(或获取CRAN或类似文件来为您构建它们)。现在有一个用于R的字节编译器,并且R的包现在默认情况下是字节编译的。速度改进通常比较适度-不要指望类似C的速度。

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

包可以利用诸如延迟加载之类的优势,例如仅在需要时才加载R对象(例如,您的函数),而source则将它们全部加载到全局环境中(默认情况下)。

如果您不打算分发您的代码,则打包仅供您自己使用的好处不多,但是如果打包并编写文档和示例/测试,则可能会收到有关破坏示例或代码的打包代码更改的警告。导致测试失败。这样一来,您就可以更好地了解代码的可靠性,即使只有您在使用它也是如此!

关于R包和执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4758326/

相关文章:

java - 为什么我可以在 Java 中导入特定的类,但不能导入它的包?

r - 我正在循环遍历一个向量并尝试使用每个元素作为数据框列名称。如何读取 df3$x 中 $ 之后的每个元素?

r - 用不同颜色绘制一个时间序列

c++ - 使用 SSD 加快编译时间

c++ - 使用为不同机器编译的静态库

r - 使用roxygen2时如何指定以哪种顺序加载S4方法

r - plot() 不显示 lme/lmer 的所有诊断图

r - 情节图例随机森林 r

c - 这个 "c(.text+0x7): relocation truncated to fit: 8 .data"是什么类型的错误

r - 具有多个包和开发人员的 Big R 项目 : Best setup for easy version controll based on packages