Программистское недоуменное
Nov. 23rd, 2009 12:14 pmЕсть у меня два файла, почти одинаковой длины, чуть поболее 6 миллионов строк каждый:
А теперь - наоборот:
% wc -l f* 6282918 f1.txt 6287998 f2.txtСравним их.
% diff f1.txt f2.txt > diff12 % wc -l diff12 69246 diff12Слегка так отличаются, чуть больше, чем на процент.
А теперь - наоборот:
% diff f2.txt f1.txt > diff21 % wc -l diff21 6756943 diff21Я не понимаю, а вы?
no subject
Date: 2009-11-23 08:25 pm (UTC)Очевидно, для поиска "соответствующих" строк у него буфер какого-то размера. По-видимому, в одном из файле (f2?) есть подряд большой блок ни с чем не совпадающих строк, заполнивший этот буфер.
no subject
Date: 2009-11-23 08:33 pm (UTC)Это понятно, но что за бардак? В 21-м веке на многогигагерцовых машинах с многогигабайтной памятью можно бы по умолчанию и симметричное сравнение делать, нет?
no subject
Date: 2009-11-23 08:42 pm (UTC)no subject
Date: 2009-11-23 08:45 pm (UTC)огально ох...огульно охаивать?В 2002 году уже можно было и покрепче подумать над алгоритмом.no subject
Date: 2009-11-23 09:15 pm (UTC)no subject
Date: 2009-11-23 08:43 pm (UTC)no subject
Date: 2009-11-24 02:36 am (UTC)no subject
Date: 2009-11-23 08:37 pm (UTC)Diff несимметричный.
no subject
Date: 2009-11-23 08:40 pm (UTC)no subject
Date: 2009-11-23 09:55 pm (UTC)no subject
Date: 2009-11-23 09:58 pm (UTC)no subject
Date: 2009-11-23 09:42 pm (UTC)no subject
Date: 2009-11-23 09:57 pm (UTC)no subject
Date: 2009-11-23 10:35 pm (UTC)no subject
Date: 2009-11-23 11:13 pm (UTC)no subject
Date: 2009-11-23 11:21 pm (UTC)no subject
Date: 2009-11-24 04:46 am (UTC)no subject
Date: 2009-11-24 04:08 am (UTC)Если быть совсем точным, то команды для sed'а он выдает, если задать какой-то ключ (не помню какой именно), а без ключа - то же самое, но в более человекочитаемой форме.
no subject
Date: 2009-11-24 04:42 am (UTC)потому что все оттенки смысла умное число передает
Date: 2009-11-24 06:25 am (UTC)Возможно, не все фишки там учтены. По идее дифф должен прогнать оба варианта, взять из них более короткий и при необходимости инвертировать.
Re: потому что все оттенки смысла умное число передает
Date: 2009-11-24 06:43 am (UTC)По идее дифф должен по умолчанию работать по симметричному алгоритму. Например, вставляем строки из обоих файлов в два хеша, пока очередная строка из одного файла не найдется в "чужом" хеше, выплевываем то, что предшествовало совпавшей строке в обоих файлах как "элемент редактирования", повторяем.
Re: потому что все оттенки смысла умное число передает
Date: 2009-11-24 06:49 am (UTC)Re: потому что все оттенки смысла умное число передает
Date: 2009-11-24 07:01 am (UTC)на всякого мудреца довольно простоты
Date: 2009-11-24 07:15 am (UTC)Мы тут работали с индийскими партнерами, я всякого насмотрелся.
Re: на всякого мудреца довольно простоты
Date: 2009-11-24 07:59 am (UTC)Кажется, так.
no subject
Date: 2009-11-24 03:52 pm (UTC)no subject
Date: 2009-11-24 03:54 pm (UTC)no subject
Date: 2009-11-24 04:00 pm (UTC)