【发布时间】:2018-08-27 16:47:13
【问题描述】:
我正在使用以下方法使用 fread 将文件读入 R:
fread("file:///C:/Users/Desktop/ads.csv")
fread("C:/Users/Desktop/ads.csv") # Just omitted "file:///"
我观察到运行时非常不同:
microbenchmark(
fread("file:///C:/Users/Desktop/ads.csv"),
fread("C:/Users/Desktop/ads.csv")
)
Unit: microseconds
expr min lq mean median uq max neval cld
fread("file:///C:/Users/Desktop/ads.csv") 5755.975 6027.4735 6696.7807 6235.3365 6506.652 41257.476 100 b
fread("C:/Users/Desktop/ads.csv") 525.492 584.0215 673.7166 647.4745 727.703 1476.191 100 a
为什么运行时间变化如此之大?但是,当我使用 read.csv() 时,两种变体之间没有明显差异
【问题讨论】:
-
我想知道如何在真实数据集上进行扩展。以微秒为单位进行测量通常是没有意义的。
-
@DavidArenburg 我正在运行一个带有 16,592,802 行数据集的基准 atm。
-
@DavidArenburg gist.github.com/JarkoDubbeldam/78fdd854fbb0cdb8b7e1893dc70da4ea 683MB 的较大文件,相差约一秒(相差 5%)
-
查看新的小插图以获取有关
data.table正确基准测试的建议,其内部优化使得使用microbenchmark之类的东西本身就充满了问题,例如缓存 -
@MichaelChirico 是的,我注意到缓存在这里弄乱了结果。第一次运行的时间是后续运行的 3 倍。
标签: r data.table