r - 什么时候在 RStudio 中将数据存储在内存之外变得有益?

标签 r memory-management dplyr dbplyr

我正在处理 8Gb ( HIGGS dataset) 的大型数据集。在查看 dbplyr 包的插图时(参见 vignette('dbplyr')),我遇到了这一行,

(If your data fits in memory there is no advantage to putting it in a database: it will only be slower and more frustrating.)

HIGGS 数据集确实适合我机器的内存,我的问题是:

  1. 总是是真的吗?如果不是,那什么时候不是真的?
  2. 更一般地说,将数据保留在内存之外是否有任何性能优势,即使它适合,为什么?

编辑:查看@Waldi 提供的链接后:RAM 100x faster than HDD ,另一个问题是这对 SSD 有何影响?

最佳答案

R 是内存密集型的,因此最好获得尽可能多的 RAM。您拥有的 RAM 数量会限制您可以分析的数据集的大小。

添加固态驱动器 (SSD) 通常不会对 R – vignette(dbplyr) 的速度产生太大影响,因为 R 会将对象加载到 RAM 中。然而,启动时间的减少和increase in your overall productivity since I/0 is much faster购买 SSD 驱动器非常划算。

library(benchmarkme) 是用于评估您的 CPU 数字运算能力的包 benchmarkme。 CPU 内核是您想要探索大数据性能的另一个领域。如果您使用的是 CPU,内核越多越好。

library(Multidplyr)dplyr 的后端 partitions a data frame across multiple cores. 这最大限度地减少了移动数据所花费的时间,并最大限度地提高了并行性能。

关于r - 什么时候在 RStudio 中将数据存储在内存之外变得有益?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63354388/

相关文章:

C#内存分配和链表实现

r - dplyr:独特和独特之间的区别

r - 标准化数据/数据范围之间的映射

r - 是否可以在 grepl() 中使用 AND 运算符?

r - 指示特定值第一次出现的新变量

r - 移动均值作为 dplyr 中的函数

r - 用R中的tidyverse按组完成整数序列

R代码示例/最佳实践

c - 操作内存时是否需要乘以sizeof(char)?

objective-c - Objective-C对象 Release模式