буферизация 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(&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 ничего не меняет по сравнению с обычной ситуацией (без переопределения буфера).

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

 (и я необъяснить причинурезонанс" для 1кБ ручного буфера ...)