Вот тут объясняется история с медленной скоростью копирования файлов в Висте. На самом деле алгоритм копирования был даже улучшен по сравнению с XP, но особенности работы диалога, показывающего прогресс копирования, замедляли процесс с точки зрения пользователя.
Ещё до перехода на Linux я однажды установил плагин к Far’у, который менял используемый алгоритм копирования: при копировании кучи мелких файлов он их копировал не один за другим, а сначала считывал несколько файлов в память, а затем — все записывал. И чаще всего копирование с этим плагином происходило значительно быстрее.
В Linux я чаще всего копирую командой cp, и понимаю, что в ней-то всегда используется примитивный алгоритм — файл за файлом. На самом деле разделить чтение и запись файлов можно при помощи tar — я сейчас не помню точно с какими параметрами его нужно вызывать, но идея такая:
tar c <список файлов> | tar x
То есть мы создаём несжатый архив, но не сохраняем его на диск, а передаём на вход разархиватора. Но это, конечно, выход не идеальный — зачем нам ещё и создавать архив, если мы всего лишь копируем файлы?
Вопрос для домашнего задания: а какие стратегии копирования используются в Dolphin и Nautilus?
2 комментариев
RSS feed for comments on this post. TrackBack URL
Оставить комментарий:


PhoeniX | 3.03.2008 12:40
есть ещё всякие cpio, можно альясов понаделать.
LXj | 3.03.2008 13:15
А при чём тут это?