[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: dd



> > cp -a - очень приятная фри-юникс-специфичная штука, но она крайне редко
> > оказывается лучше, чем rsync -a.  И в половине случаев при этом на самом
> > деле нужно еще более гну-читай-линукс-специфичное cp -al.  Это к вопросу о
> > нижепроцитированном sendfile(2), которая в этом последнем случае
> > немедленно начинает проигрывать cp в разы по скорости и квадратично по
> > месту на диске.
> 
> Вопрос же не в том cp или rsync, а в том open/write или специальным ядерным
> вызовом.  Понятно, что чем изощреннее становятся оба планировщика, чем
> сложнее дисковые драйверы и сами диски, тем больше будет разрыв в
> производительности между двумя подходами.

Видишь ли, cp -al - это не open/write и не sendfile(2).  Это link(2).

> Ну и потом linux не добился бы никакого успеха без "Stable API Nonsense", и
> широкого прорастания этого Non Stable API в userspace. Его козырем всегда
> был и будет +1% к производительности. А он и есть IMHO за счет Non Stable
> API.

Я же не говорю, что линукс-специфичное решение _всегда_ хуже.  Там, где тебе
действительно нужен +1% - не вопрос, оптимизируй.

Когда у тебя прорва файлов и ты точно знаешь, что тебе их надо скопировать из
одной директории в другую не глядя, надо сделать это один раз и на линуксе, cp
-a в норме будет быстрее, чем rsync -a, не вопрос.  Потому что не будет читать
даже целевое дерево, не говоря уже о файлах (интересно, у rsync есть
противоестественный интеллект на тему "если копирование локальное, не считать
контрольные суммы и дельты, а гнать файл не глядя"? и если он есть, то хорошо
ли это для копирования на флешки?)

> > вообще.  Потому что нигде больше не применяемый и оттого не
> > стандартизованный sendfile(2) вдруг взял и разучился копировать между
> > файлами.
> 
> Fall back to read/write все делают.

Если нет жестких требований к производительности, то дешевле сразу написать
read/write, чем писать sendfile и fallback на тот же самый read/write.  А если
есть, то какой нафиг fallback?

Нет, я понимаю, есть узкий класс задач, где это имеет смысл.

-- 
Unix-like -- для кинестетиков, Emacs -- для аудиалов, Mac -- для визуалов, 
Windows -- для чайников
 -- RockMover in <RM279891167063140rmover@golovolomka.net>


Reply to: