tagman
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Victor_VG Вы не поняли о чём я, и о чём metatrop собственно начинал. Если программа создаёт файл, но не записывает его весь, то система именно сама заливает нулями те кластера, в которые записи не было. Совсем на пальцах. Создаём файл. Ничего не записывая, делаем seek на 10 кластеров. Записываем 1 кластер единицами. Закрываем файл или делаем flush. Получаем файл размером в 11 кластеров, из которых первые десять - это нули, хотя мы их и не писали, а последний кластер - записанные нами единицы. Я сам это проверял, на Винде при таком сценарии в файл на диске реально заливаются нули. И делается это по тому, что обычному файлу всегда выделяются реальные кластера на диске строго по его размеру вне зависимости от того, была туда запись или нет. Если записи не было, система обнуляет их сама, так как эти кластеры содержат данные удалённых старых файлов. На ntfs есть только один способ избежать такого поведения - сделать разреженный файл. Тогда под нулевые участки файла кластера тупо не выделяются. Но в борьбе с фрагментацией это никак не поможет. PS Почему-то пост оказался свёрнут в теги more, не могу убрать их. Хотя редактирование сообщений вроде разрешено. Странный движок у форума. | Всего записей: 4 | Зарегистр. 24-09-2019 | Отправлено: 14:13 18-10-2019 | Исправлено: tagman, 14:19 18-10-2019 |
|