Цитата MSuren:
я действительно замечаю падения реальной скорости (сама полоска состояния начинает медленней заполняться со временем). »
|
Поясняю. При запуске копирования на флешку операционной системой в оперативной памяти создаётся буфер (не знаю сколько - предположим 50 Мб). В этот буфер копируются первые 50 Мб данных с винчестера. С этого же буфера данные сразу начинают сбрасываться на флешку. Т.к. флешка медленнее винчестера, то буфер постепенно достигает своего максимального значения (50 Мб). С этого момента скорость прогресс-бара определяется уже только скоростью записи на флешку.
Поэтому в начале копирования (до полного заполнения буфера) показывается фактически скорость считывания с винчестера (54 Мб/с). А в конце копирования - показывается реальная скорость записи на флешку (16 Мб/с). Все прочие промежуточные числа получаются хитрым вычислением от начальной скорости (54 Мб/с) и времени прошедшего с начала копирования.
При этом Windows до самого конца копирования не знает скорости записи на флешку (16 Мб/с). Иначе можно было бы сразу точно до секунды вычислить оставшееся время:
T = Объём данных/ Скорость записи флешки - Время с начала копирования.