Это может быть проблема реализации с конкретной ОС.
Также я предполагаю, что буфер ofstream (buflen) меньше 10000, типичное значение 4095. Поэтому попробуйте запустить с i <4096, и время отклика должно быть таким же! </p>
Причина, по которой он быстрее во втором случае:
В первом случае, когда буфер заполнен (buflen = 4095 байт), он записывается на диск. Так что для меня <10000 это вызвало бы его промывку 3 раза. </p>
В то время как во втором случае все данные сначала подготавливаются в ОЗУ и за один раз сбрасываются на жесткий диск. Таким образом, два сброса были сохранены!