Я пытаюсь записать огромные объемы данных на свой твердотельный накопитель SSD (). И под огромным количеством я имею в виду 80 ГБ.
Я искал решения в Интернете, но лучшее, что я придумал, это:
#include <fstream>
const unsigned long long size = 64ULL*1024ULL*1024ULL;
unsigned long long a[size];
int main()
{
std::fstream myfile;
myfile = std::fstream("file.binary", std::ios::out | std::ios::binary);
//Here would be some error handling
for(int i = 0; i < 32; ++i){
//Some calculations to fill a[]
myfile.write((char*)&a,size*sizeof(unsigned long long));
}
myfile.close();
}
Скомпилированная с Visual Studio 2010 и полной оптимизацией и работающая под Windows7, эта программа достигает максимальной скорости около 20 МБ/с. Что меня действительно беспокоит, так это то, что Windows может копировать файлы с другого SSD на этот SSD со скоростью от 150 МБ/с до 200 МБ/с. Так минимум в 7 раз быстрее. Вот почему я думаю, что я должен быть в состоянии идти быстрее.
Любые идеи, как я могу ускорить свое письмо?