буферизация std :: fstream против ручной буферизации (почему 10-кратное усиление при ручной буферизации)?

Я проверил две конфигурации записи:

1) Fstream буферизация:

// Initialization
const unsigned int length = 8192;
char buffer[length];
std::ofstream stream;
stream.rdbuf()->pubsetbuf(buffer, length);
stream.open("test.dat", std::ios::binary | std::ios::trunc)

// To write I use :
stream.write(reinterpret_cast<char*>(&x), sizeof(x));

2) Ручная буферизация:

// Initialization
const unsigned int length = 8192;
char buffer[length];
std::ofstream stream("test.dat", std::ios::binary | std::ios::trunc);

// Then I put manually the data in the buffer

// To write I use :
stream.write(buffer, length);

Я ожидал того же результата ...

Но моя ручная буферизация повышает производительность в 10 раз при записи файла размером 100 МБ, а буферизация в fstream ничего не меняет по сравнению с обычной ситуацией (без переопределения буфера).

У кого-нибудь есть объяснение этой ситуации?

РЕДАКТИРОВАТЬ: Вот новости: тест только что на суперкомпьютере (64-разрядная архитектура Linux, 8-ядерный процессор Intel Xeon, файловая система Luster и ... надеюсь, хорошо настроенные компиляторы) (и я не объясняю причину "резонанса" для ручного буфера 1 КБ ...)

РЕДАКТИРОВАТЬ 2: И резонанс в 1024 B (если у кого-то есть идея об этом, мне интересно):

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

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