对比read.table & fread & read_tsv,谁性能更好
测试环境
电脑配置
- 2015年初MacBook Pro
- 系统 OS X EI Capitan 10.11.4
- 处理器 2.7G GHz Inter Core i5
- 内存 8G 1867 MHz DDR3
- 硬盘 256G SSD
R版本
- R version 3.2.2 (2015-08-14) — “Fire Safety”
- Platform: x86_64-apple-darwin13.4.0 (64-bit)
dbFetch & dbGetQuery
18335813行、41列的MySQL表读入R数据框。dbGetQuery
稍快,比dbFetch
快10%
1 | > system.time(dbFetch(res1,n=-1)) |
read.table & fread & read_tsv
3.5G的txt读入R,fread
比read.table
性能提升7倍,比hadley大神readr包里的read_tsv
提升1倍
1 | > system.time(read.table("mydata1.txt",encoding = 'UTF-8',stringsAsFactors=FALSE,header=TRUE,sep='\t')) |
需要注意的是,fread
只能设定编码为 UTF-8 或者 Latin-1 ,导致编码为 gbk 的文件会有乱码问题。从这一点看,fread
还是无法完全覆盖readr
read_csv
的locale
参数可以指定 编码格式 ,另外还有一些时区等等方面的设置,详情查看帮助文档
1 | mydata = read_csv("/Users/lixinyao/Desktop/mydata.csv", |