виртуальная функция const против виртуальной функции non-const

Другой вариант - использовать формат файла feather .

df <- as.data.frame(matrix(runif(256*65536), nrow = 256))

system.time(feather::write_feather(df, "df.feather"))
#>   user  system elapsed 
#>  0.237   0.355   0.617 

Feather - это формат двоичного файла, который очень эффективен для чтения и записи. Он предназначен для работы с несколькими языками: в настоящее время есть клиенты R и python, и клиент julia работает.

Для сравнения, вот как долго saveRDS принимает:

system.time(saveRDS(df, "df.rds"))
#>   user  system elapsed 
#> 17.363   0.307  17.856

Теперь это несколько несправедливое сравнение, потому что по умолчанию для saveRDS используется сжатие данных, и здесь данные несжимаемы, потому что они полностью случайны. Сжатие сжимания делает saveRDS значительно быстрее:

system.time(saveRDS(df, "df.rds", compress = FALSE))
#>   user  system elapsed 
#>  0.181   0.247   0.473     

И действительно, теперь он немного быстрее, чем перо. Так зачем использовать перо? Ну, это обычно быстрее, чем readRDS(), и вы обычно записываете данные относительно немного раз по сравнению с количеством раз, которое вы читали.

system.time(readRDS("df.rds"))
#>   user  system elapsed 
#>  0.198   0.090   0.287 

system.time(feather::read_feather("df.feather"))
#>   user  system elapsed 
#>  0.125   0.060   0.185 

13
задан vamsi 28 February 2012 в 19:11
поделиться