Как говорит Нейл, у вас не может быть и того, и другого. Как выделение памяти, так и операции ввода-вывода, как правило, обходятся дорого. Если вы не работаете на настоящей крошечной машине, лучше всего выделить большой буфер до начала временных тестов , а затем заполнить его для записи.
FILE * fid = fopen( path, "w" );
if ( !fid ) error();
setvbuf( fid, NULL, _IOFBF, BLKSIZ * n )
где «n» определяет, сколько места вы хотите установить. будет обрабатывать всю занятую буферизацией работу за вас, включая освобождение буфера при закрытии файла.
Сохраняйте все достаточно маленьким, включая буферы, чтобы вы не запускали подкачку виртуальной машины, иначе каждый тест синхронизации будет вам вреден. Можете ли вы работать с большим количеством оперативной памяти и без файлов подкачки?