Я щойно скопіював 200 ГБ з USB HDD на основний диск. Було близько 130000 файлів
Після перших 4-5 хвилин я помітив, що:
- Для найменших файлів швидкість становила близько 100 файлів в секунду зі швидкістю близько 600 КБ / с
- А для великих файлів це було як 70 Мб / с
На початку Windows змінив оцінку від 1 години до 5+ годин, потім назад до 1 години тощо. Зрештою, як у 95%, вона все ще змінювала оцінку з 10 хвилин до 10+ годин. Тож замість того, щоб стати більш точним, воно йшло все менш і менш точно.
Прості математичні шоу:
130 000 файлів зі 100 файлами в секунду = 22 хвилини
200 000 МБ при 70 Мб в секунду = 47 хвилин
22 хвилини - розкутавшись у часі пошуку, копіюючи файли розміром кілька кілобайт.
47 хвилин - час, який знадобиться для передачі фактичних даних, якщо немає часу на пошук.
Сума 22 хв + 47 хв - це абсолютний максимальний час, який це може зайняти.
Тож очевидно, що оцінка повинна бути десь від 47 до 69 хвилин.
Що показує діалогове вікно приблизно на 90%: "Я копіюю невеликі файли з частотою 1 Мб / с, на 20 ГБ більше даних. На завершення знадобиться 5:30 годин.
Кілька секунд пізніше: "Я копіюю великий файл сюди, зі швидкістю 70 Мб / с, це займе 4 хвилини.
Що людина насправді бачить із того самого діалогу: 120 000 файлів та 180 ГБ вже копіюються за 40 хвилин. Решта 10000 файлів і 20 Гб повинні займати близько 5 хвилин
Діалогове вікно дає достатньо інформації, щоб зробити обчислення, які з кожним секундою стають все точнішими. Він знає швидкість, з якою копіюються невеликі файли. Він знає, з якою швидкістю копіюються великі файли. Він також знає, скільки файлів і скільки байтів залишилось.
Настільки просто зробити таке точне припущення лише встановивши верхню і нижню межу.
Діалогове вікно показує трохи правильніші дані лише у випадку, коли великі файли знаходяться перед малими файлами. У такому випадку він починається через 40 хвилин, а через 30 хвилин він починає копіювати невеликі файли і каже "ну, мені потрібно ще 20 хвилин".
Але коли маленькі файли на початку та великі файли - у кінці. Діалогове вікно насправді не переймається тим, які "файли в секунду" передають невеликі файли. Це робить його обчислення так, як кількість малих файлів - це нескінченність, і таке, як вони, назавжди буде малим.