Мои 2 цента: SSD окупается, только если на нем хранятся ваши приложения, а не ваши данные. И даже тогда, только если необходим большой доступ к диску, как для ОС. Люди правы, чтобы указать вам на профилирование. Без этого я могу сказать, что почти все время чтения уходит на обработку, а не на чтение на диске.
Лучше думать о формате ваших данных, а не о том, где они хранятся. Ускорение чтения ваших данных может быть достигнуто с помощью правильных приложений и правильного формата. Как использовать внутренний формат R вместо того, чтобы возиться с текстовыми файлами. Сделайте это восклицательным знаком: никогда не продолжайте возиться с текстовыми файлами. Идите бинарно, если вам нужна скорость.
Из-за накладных расходов, как правило, не имеет значения, если у вас есть SSD или обычный диск для чтения ваших данных. У меня есть оба, и я использую обычный диск для всех моих данных. Я иногда работаю с большими наборами данных, и у меня никогда не возникало с этим проблем. Конечно, если мне придется идти очень тяжело, я просто работаю на наших серверах.
Так что это может иметь значение, когда мы говорим о концертах и концертах данных, но даже тогда я очень сомневаюсь, что доступ к диску является ограничивающим фактором. Если только вы постоянно не читаете и не записываете на диск, но тогда я бы сказал, что вы должны снова начать думать о том, что именно вы делаете. Вместо того, чтобы тратить эти деньги на SDD-диски, лучше использовать дополнительную память. Или просто убедите босса найти вам достойный сервер вычислений.
Временной эксперимент с использованием фиктивного фрейма данных, а также чтение и запись в текстовом формате в двоичном формате на SSD-диске или на обычном диске.
> tt <- 100
> longtext <- paste(rep("dqsdgfmqslkfdjiehsmlsdfkjqsefr",1000),collapse="")
> test <- data.frame(
+ X1=rep(letters,tt),
+ X2=rep(1:26,tt),
+ X3=rep(longtext,26*tt)
+ )
> SSD <- "C:/Temp" # My ssd disk with my 2 operating systems on it.
> normal <- "F:/Temp" # My normal disk, I use for data
> # Write text
> system.time(write.table(test,file=paste(SSD,"test.txt",sep="/")))
user system elapsed
5.66 0.50 6.24
> system.time(write.table(test,file=paste(normal,"test.txt",sep="/")))
user system elapsed
5.68 0.39 6.08
> # Write binary
> system.time(save(test,file=paste(SSD,"test.RData",sep="/")))
user system elapsed
0 0 0
> system.time(save(test,file=paste(normal,"test.RData",sep="/")))
user system elapsed
0 0 0
> # Read text
> system.time(read.table(file=paste(SSD,"test.txt",sep="/"),header=T))
user system elapsed
8.57 0.05 8.61
> system.time(read.table(file=paste(normal,"test.txt",sep="/"),header=T))
user system elapsed
8.53 0.09 8.63
> # Read binary
> system.time(load(file=paste(SSD,"test.RData",sep="/")))
user system elapsed
0 0 0
> system.time(load(file=paste(normal,"test.RData",sep="/")))
user system elapsed
0 0 0