Написание бинарного файла на C ++ очень быстро

Я пытаюсь записать огромное количество данных на мой 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 раз быстрее. Вот почему я думаю, что смогу идти быстрее.

Любые идеи, как я могу ускорить свое письмо?

Ответы на вопрос(12)

Ваш ответ на вопрос