R 脚本和库预加载?

2024-01-02

我创建了一个 R 脚本,它需要首先加载一些库。

问题是脚本需要 1.6 秒才能完成计算(使用 Linux 命令“time”多次测量),而加载库只需要 0.7 秒!

该脚本运行频率很高,因此库加载的延迟几乎占了实际工作量的80%!

有什么方法可以预加载库,这样它们就不会在每次脚本运行时加载?

还有其他建议可以绕过这种缓慢的情况吗?

#!/usr/bin/Rscript

library(methods, quietly=TRUE, warn.conflicts = FALSE)
library(MASS, quietly=TRUE, warn.conflicts = FALSE)
library(RBGL, quietly=TRUE, warn.conflicts = FALSE)
library(igraph, quietly=TRUE, warn.conflicts = FALSE)
library(bnlearn, quietly=TRUE, warn.conflicts = FALSE)
library(gRbase, quietly=TRUE, warn.conflicts = FALSE)
library(gRain, quietly=TRUE, warn.conflicts = FALSE)
..
..

如果你把你的脚本变成一个包(无论如何你应该这样做,从长远来看......)那么你可以使用Imports仅包含您使用的包中所需的符号 - 这通常比完全加载快一点Depends.

所以关键是

  1. 使用包
  2. 学习关于NAMESPACE
  3. import只是您需要的符号。

正交方法是不重新启动并节省时间 --- 您可以使用Rserve http://rforge.net/Rserve作为常驻 R 实例,只需使用 R 客户端连接到它。不过可能还有更多工作...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R 脚本和库预加载? 的相关文章

随机推荐

  • 如何在pyspark中对一组列进行分桶?

    我正在尝试对 5k 数据集中包含 road 一词的列进行分桶 并创建一个新的数据框 我不知道该怎么做 这是我迄今为止尝试过的 from pyspark ml feature import Bucketizer spike cols col
  • 如何将文件夹中的所有 .csv 文件转换为具有多个工作表选项卡(每个 .csv 1 个)的单个 .xlsx 文件? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个包含 20 个左右 csv 文件的文件夹 我想创建一个具有多个工作表选项卡 每个 csv 1 个 的 xlsx 文件 exce
  • 为什么我想要模拟的属性需要是虚拟的?

    我正在做一些单元测试 并使用模拟一些属性Moq 现在 这是一个控制器测试 ASP NET MVC 3 我的控制器源自abstract控制器 称为抽象控制器 该控制器依赖于 Http Context 以便执行诸如主题 基于 HTTP HOST
  • 启动图像未显示在我的 iOS 应用程序中

    我想要在我的应用程序中显示一个简单的启动屏幕 该屏幕是使用 Xcode 6 0 1 构建的 我通过两种方式添加了启动屏幕 作为 XIB 使用默认名称 LaunchScreen xib 和作为 xcassets 中设置的启动图像 我已确保我的
  • AES 128 位加密不起作用

    我正在尝试为 Android 实现 AES 128 位加密 在 cipher doFinal 上 进程停止 它也不会进入 catch 块 已附上代码 public class MainActivity extends Activity Ed
  • NextJS:如何通过 CDN 添加引导程序

    我是 nextJS 的新手 我在通过 CDN 在应用程序中包含 bootstrap 时遇到了麻烦 在应用程序中的何处添加链接是最佳实践 要覆盖默认文档 请创建文件 pages document js并扩展 Document 类 如下所示 并
  • 在 React 中强制重新加载 gif

    我有一个包含 3 个步骤的模态组件 在第一步中 我有一个没有循环的 gif 换句话说 gif 不是无限的 gif 当我打开模态并返回第一步时 我希望 gif 重新启动动画并仅循环一次 我的问题是 当我第一次显示 gif 时 浏览器下载 gi
  • EFCore 在 dbcontext 的生命周期内使用单个 dbconnect

    我正在使用 EF Core 将数据流式传输到后端数据库 我称之为SaveChanges对于添加到数据集中的每一定数量的新对象 我从 EFCore 调试日志中注意到 每次调用时它都会关闭连接并打开一个新连接SaveChanges Micros
  • Android可扩展列表:具有不同布局的组

    我想为每个组显示不同的子布局 例如 Override public View getChildView int groupPosition int childPosition boolean isLastChild View convert
  • @OnClick 在 ButterKnife 库的实现中不起作用

    OnClick在 ButterKnife 库的实现中不起作用 当我点击Button 什么也没有发生 这是我的完整代码 public class MainActivity extends ActionBarActivity InjectVie
  • CMake 在 Qt6 安装中找不到包

    我正在尝试通过 CMake 构建项目 并将环境变量 Qt6 DIR 设置为包含 Qt6Config cmake 的目录 然而 构建似乎无法在 Qt6 安装中找到它所需的任何其他依赖项 我不确定接下来需要做什么 我看到对其他可能的环境变量 如
  • Visual Studio 解决方案资源管理器锁定

    我在使用带有 TFS 的 Visual Studio 2005 时遇到问题 解决方案资源管理器有时会停止响应交互 相反 它会发出蜂鸣声 就像我试图单击一个可见模式对话框的父窗口一样 但没有一个 到目前为止 我发现要做的唯一一件事就是重新启动
  • unique_ptr 运算符=

    std unique ptr
  • 如何按降序打印频率?

    我已经看过其他类似的问题 但无法将答案应用到我的程序中 目前频率按升序打印 我该如何更改才能使其按降序打印 from sys import argv frequencies for ch in ABCDEFGHIJKLMNOPQRSTUVW
  • 为什么要用!!当将 int 转换为 bool 时?

    以这种方式将整数转换为布尔值的原因是什么 bool booleanValue integerValue 而不仅仅是 bool booleanValue integerValue 我所知道的是 在 VC 7 中后者会导致C4800警告 htt
  • swift 2 解析 facebook SDK ios 9

    我正在尝试通过 Facebook 登录用户 在以前的 swift 1 2 版本中 一切都工作得很好 但迁移后我似乎无法通过我的 FB 帐户登录 但仍然收到错误消息 canOpenURL 失败的 URL fbauth authorize cl
  • iOS 上出现 UnsatisfiedLinkError 但 Android 上没有,loadLibrary 总是成功

    我有一些 Java 和 C 代码 可以在两个平台上编译并构建本机库 我可以验证这些库是否包含我期望的功能 并且 Java 能够在 Android 和 iOS 上加载这些库 在 Android 上 一切顺利 没有崩溃 但在 iOS 上 我遇到
  • Discord 机器人“有时”无法显示表情

    作为一名法国昆特牌玩家 我构建了一个discord 机器人 使用node js 和discord js 来在您命名卡片时显示该卡片的信息 它使用一些自定义表情来显示它的某些部分 它在几周内运行良好 但最近有些卡片在被调用时不显示表情 我不知
  • wagon ssh / scp:没有可用于访问存储库的连接器...默认类型使用可用工厂 WagonRepositoryConnectorFactory

    这是 wagon ssh 2 10 的错误吗 什么可能有效 例如 Maven Wagon SSH 和 pom 设置的哪种组合可以恢复 Maven 3 0 5 和 wagon ssh 2 4 的行为 在我的 pom xml 中升级到 wago
  • R 脚本和库预加载?

    我创建了一个 R 脚本 它需要首先加载一些库 问题是脚本需要 1 6 秒才能完成计算 使用 Linux 命令 time 多次测量 而加载库只需要 0 7 秒 该脚本运行频率很高 因此库加载的延迟几乎占了实际工作量的80 有什么方法可以预加载