URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 87760
[ Назад ]

Исходное сообщение
"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."

Отправлено opennews , 14-Дек-12 18:17 
В рамках проекта beagrep (http://baohaojun.github.com/beagrep.html) развивается полезный для разработчиков больших проектов вариант утилиты grep, способный выполнить поиск по дереву исходных текстов размером 2 Гб всего за 2 секунды (аналогичный поиск утилитой grep занимает 5 минут). Подобная скорость достигается благодаря использованию предварительной индексации данных, при этом построение индекса занимает достаточно много времени (для кода платформы Android индекс создаётся около 8 минут).


При обновлении файлов после построения индекса, они автоматически переиндексируются в процессе запуска утилиты (индекс нужно построить один раз, в дальнейшем он будет обновляться автоматически). Утилита поддерживает штатные возможности grep, в том числе поиск с использованием регулярных выражений и подсветка результатов. Программа распространяется (https://github.com/baohaojun/beagrep) под лицензией MIT  и написана на языке C# с использованием Mono. Для индексации используется движок DotLucene.

URL: http://baohaojun.github.com/beagrep.html
Новость: http://www.opennet.me/opennews/art.shtml?num=35606


Содержание

Сообщения в этом обсуждении
"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 14-Дек-12 18:20 
>способный выполнить поиск по дереву исходных текстов размером 2 Гб всего за 2 секунды

Написали бы на С - было бы 0.2 секунды.


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 14-Дек-12 18:23 
Написали бы на asm - было  бы 0.16666 секунды.

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено GentooBoy , 14-Дек-12 18:30 
Писали бы сразу в машинных кодах ... Да нет хрень это. )))

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 14-Дек-12 19:46 
"Real Programmers don't use IDEs, they write programs using cat > a.out"

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено anonymous , 14-Дек-12 19:50 
IDE и 100MB кода?
поделитесь секретом успеха, как настраивать, какой функционал не использовать.

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено ZloySergant , 14-Дек-12 19:54 
>поделитесь секретом успеха, как настраивать, какой функционал не использовать.

Сказали же, cat > file << EOF . :)
Все что нужно - coreutils


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено develop7 , 14-Дек-12 20:13 
> "Real Programmers don't use IDEs, they write programs using cat > a.out"

за бесконечное время, да.



"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 14-Дек-12 20:44 
> за бесконечное время, да.

Чего бы ради за бесконечное? Может еще и для любой программы? :)


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено GentooBoy , 14-Дек-12 23:02 
В каком музее таких программистов выставляют? Хочу сходить посмотреть.

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 14-Дек-12 19:02 
Написали бы на жаве, было бы быстрее, чем на асме

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 14-Дек-12 19:47 
> Написали бы на жаве, было бы быстрее, чем на асме

А если жаву переписать на жаве - говорят что из-за бесконечного ускорения явы явой образуется сингулярность.


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Карбофос , 14-Дек-12 20:41 
только ребятам на адронном коллайдере этого не рассказывайте. так, на всякий. :)

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 14-Дек-12 23:04 
Пайтон на пайтоне, опроверг эту теорию.
Хотя стал быстрее СИ.

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 15-Дек-12 00:18 
> Пайтон на пайтоне, опроверг эту теорию.

Недопиленная версия просто. Урезанная. Вот и... :)


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Кевин , 15-Дек-12 03:50 
писали бы на асм... не написали бы ещё.

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 15-Дек-12 23:25 
> писали бы на асм... не написали бы ещё.

Лучше упорная работа над собой, чем штампование тяп-ляпок за пару минут.


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено develop7 , 14-Дек-12 18:34 
> написали *БЫ*
> было *БЫ*

.


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 14-Дек-12 19:48 
>> написали *БЫ*
>> было *БЫ*

Ну и как, ты уже вкатил многометровую моновскую какашку не сервера ради ... грепа? :)


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 15-Дек-12 23:17 
>>> написали *БЫ*
>>> было *БЫ*
> Ну и как, ты уже вкатил многометровую моновскую какашку не сервера ради
> ... грепа? :)

Ради rsyslogа фанаты юникс-ой-вея будут и openjdk вкатывать, делов-то.
Причем не только на серваки, но и на эмбеддовку.


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 16-Дек-12 16:43 
Только не надо тро-ло-то.
У rsyslog-а нет зависимостей кроме libc, libthr и libz.

А вот не поклонники unix-вея готовы жить с огромным комбайном-блобом с сомнительной надежностью и пользой от последнего.


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено develop7 , 16-Дек-12 20:29 
> А вот не поклонники unix-вея готовы жить с огромным комбайном-блобом с сомнительной надежностью и пользой от последнего.

KERNEL32.DLL?


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено ig0r , 14-Дек-12 18:45 
У разработчиков на C обычно нет проблемы с размерами исходных кодов, эта проблема остра для програмистов на яве, дотнет, и т.п.

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено абыр , 14-Дек-12 18:52 
У сишников есть ctags, нам этой монохрени не надо :)

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено anonim , 14-Дек-12 19:27 
Вообще-то ctag не только для сишников.... но все равно плюсую - монохрени не надо!

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Пингвино , 14-Дек-12 19:49 
Окай, парниша, жду твою "правильную" реализацию. Или не можешь?

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено anonymous , 14-Дек-12 19:52 
> Окай, парниша, жду твою "правильную" реализацию. Или не можешь?

вам бы только новым велосипедам аплодировать
cscope, например есть как навигатор/поисковик


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Пингвино , 14-Дек-12 20:05 
> вам бы только новым велосипедам аплодировать

А что плохого в разнообразии? Быть может однажды вот так создадут что-то интересное и перспективное.


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 15-Дек-12 23:18 
>> вам бы только новым велосипедам аплодировать
> А что плохого в разнообразии? Быть может однажды вот так создадут что-то
> интересное и перспективное.

В данном случае - заведомо неинтересно и бесперспективно. Что несколько очевидно. И смысл тогда с этим париться?


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено BratSinot , 14-Дек-12 19:25 
Не было бы. C выигрывает при расчетах, а при ворочании данных разницы с JVM и .NET/Mono не будет. Просто JVM и .NET/Mono изначально легко маштабируемы.

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Grammar Nazi , 14-Дек-12 19:34 
масштабируемы

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Crazy Alex , 14-Дек-12 19:54 
Вообще-то будет с хорошей вероятностью - C обычно провоцирует городить много менее сложные структуры данных.

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено ВасисуалиьМихаил , 15-Дек-12 14:14 
> Не было бы. C выигрывает при расчетах, а при ворочании данных разницы
> с JVM и .NET/Mono не будет. Просто JVM и .NET/Mono изначально
> легко маштабируемы.

давайте на эрланге напишем тогда МАПРЕДУСЕ!


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 14-Дек-12 19:43 
> Написали бы на С - было бы 0.2 секунды.

Кроме того, если libc на серваке уже есть, то вот ставить туда куче мегов дотнета ради вшивенького грепа - вот уж увольте! Дотнетчики - больные на голову люди.


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 14-Дек-12 21:15 
>> Написали бы на С - было бы 0.2 секунды.
> Кроме того, если libc на серваке уже есть, то вот ставить туда
> куче мегов дотнета ради вшивенького грепа - вот уж увольте! Дотнетчики
> - больные на голову люди.
> вот уж увольте!

ты уволен


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 14-Дек-12 21:58 
Спасибо. Ставить на сервера ради грепа многометровый крап - удовольствие ниже среднего.

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 15-Дек-12 20:25 
>> вот уж увольте!
>ты уволен

Уборщик ночной смены сидящий за столом директора? Да - доставил :)


"нате вам индексатор"
Отправлено Васисуалиь , 14-Дек-12 18:47 
find $PATH -type f | while read f                                                                                
do
    awk '{print FILENAME ":" NR ":", $0}' $f
done


-ctime и прочее по вкусу


"нате вам индексатор"
Отправлено Васисуалиь , 14-Дек-12 19:07 
568М ядрёнокода проиндексировало за 1:14 с гзипаньем, "индекс" занял 184М,

нахолодную:
time zgrep emu10k ~/kernel.gz 8,00s user 0,59s system 112% cpu 7,661 total
нагорячую (сопсна, можно индексировать в tmpfs)
time zgrep emu10k ~/kernel.gz > /dev/null  1,49s user 0,09s system 120% cpu 1,312 total


"нате вам индексатор"
Отправлено Crazy Alex , 14-Дек-12 19:59 
Хм, сделать что-то подобное мелким скриптом было бы забавно :-) А то для таких задач дотнеты - вроде и перебор...

"нате вам индексатор"
Отправлено ВасисуалиьМихаил , 15-Дек-12 14:12 
> Хм, сделать что-то подобное мелким скриптом было бы забавно :-) А то
> для таких задач дотнеты - вроде и перебор...

дык, в чём проблема, берите-пользуйтесь, в юзерский кронтаб засунуть (можно дополнительно поставить условие, чтобы смотрел, изменился ли каталог, чтобы лишний раз не переиндексировать), решение рабочее


"нате вам индексатор"
Отправлено Crazy Alex , 15-Дек-12 17:36 
Ну, как минимум либо демона с fanotify добавлять надо, либо сохранение mtime для файлов/каталогов и соответствующий апдейт - должно быть быстро по идее. Иначе новые вхождения пропускать будет. Но решение с индексацией по файлам и потом грепанием только избранных, как у автора, вроде забавнее... А дальше варианты - либо идексатор бе beagle а что-то попроще, но готовое, либо велосипед - там один хрен на 1000 строк кода...

"нате вам индексатор"
Отправлено Васисуалиь , 18-Дек-12 13:28 
> Ну, как минимум либо демона с fanotify добавлять надо, либо сохранение mtime
> для файлов/каталогов и соответствующий апдейт - должно быть быстро по идее.
> Иначе новые вхождения пропускать будет.

это понятно, но во времена i7 и скоростных sata-шных винтов никто не мешает просто дергать переиндексацию каждый раз, если каталог изменился.


"нате вам индексатор"
Отправлено Aleksey Salow , 15-Дек-12 02:04 
ваш скрипт не переиндексирует файл в случае модификации. Также проблемы с созданием новых файлов и удалением. Или предлагаете запускать скрипт вручную каждый раз?

"нате вам индексатор"
Отправлено ВасисуалиьМихаил , 15-Дек-12 14:11 
с этим небольшие проблемы, но я уже писал пор ctime, можно добавлять в файл таймстэмпы, например, правда чуть усложнится грепанье. Да и переиндексировать всё не проблема - можно настроить в кронтабе, раз в n минут, например, нагрузка на IO и проц(особенно если ядер больше одного, gzip ведь не параллелится) чуть более чем никакая.

В любом случае, лично мне трехстрочный скрипт, написанный на коленке за минуту симпатичнее, чем моноподелие, тянущее сотни мегабайт рантайма. Неынтырпрайзно? да и пофиг!


"нате вам индексатор"
Отправлено Aleksey Salow , 15-Дек-12 14:24 
> с этим небольшие проблемы, но я уже писал пор ctime, можно добавлять
> в файл таймстэмпы, например, правда чуть усложнится грепанье. Да и переиндексировать
> всё не проблема - можно настроить в кронтабе, раз в n
> минут, например, нагрузка на IO и проц(особенно если ядер больше одного,
> gzip ведь не параллелится) чуть более чем никакая.

Вот напишите, сделайте как у них, а мы посмотрим кто умнее. Просто сейчас вы взяли какой-то частный случай, героически его решили, и рассказываете что .net не нужен.


"нате вам индексатор"
Отправлено Васисуалиь , 18-Дек-12 13:26 
Авторы тоже взяли для примера частный случай андроидокода (в котором код ядра присутствует).

Опять же, меня мой велосипед более чем устраивает.

А .net/mono нужен и пусть будет, но не для подобных задач.


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 14-Дек-12 18:54 
Ага, щас. Буду mono ради grep'а ставить.

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 14-Дек-12 18:56 
> написана на языке C# с использованием Mono

Спасибо, не нужно. Штука полезная, но ставить ради неё сотню мб добра — увольте.


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено гость , 14-Дек-12 19:19 
Это они ещё индексируемый cat на моно не выпустили!

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Andrey Mitrofanov , 14-Дек-12 19:21 
Зато у них уже есть [почти] шелл на си-шарпе.

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 14-Дек-12 19:49 
> Зато у них уже есть [почти] шелл на си-шарпе.

Это который? Powershell, в котором автодополнение до сих пор нормально не работает, а консоль по прежнему взята из досбокса NT4? :)


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Mr. Cake , 15-Дек-12 17:30 
Нет, просто интерактивная консоль шарпа. Автодополнение в рамках BCL. Запускаешь, пишешь код, оно сразу результаты выдаёт. Используется, как правило, для быстрой проверки работоспособности конструкций, ну или ради сложных трансформаций над данными с применением LINQ, если IDE запускать лениво или займёт больше времени.

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Crazy Alex , 14-Дек-12 20:06 
Всё проще - там очень простая идея - оно основано на том, что часто грепается по чему-то, в чем можно выделить отдельные слова. Собственно, оно их выделяет, потом дергает поисковый движок (а именно Beagle - отсюда и нужда в Mono) и грепает только по файлав, которые вернул Бигль. Очень здравый подход, только это надо выполнять в виде скрипта, к которому поисковые движки вязались бы простейшим конфигом.

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 15-Дек-12 20:34 
> грепает только по файлав, которые вернул Бигль. Очень здравый подход,

ппц! Нет! - _П_ _П_ _Ц_ - пусть _такой_ grep у вантузятников в их вантузах только и будет.
А в моих юниксах grep будет честно ходить по fs и лопатить что Я ему сказал и как Я ему сказал. Азъ!


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 15-Дек-12 23:23 
>> грепает только по файлав, которые вернул Бигль. Очень здравый подход,
> ппц! Нет! - _П_ _П_ _Ц_ - пусть _такой_ grep у вантузятников
> в их вантузах только и будет.
> А в моих юниксах grep будет честно ходить по fs и лопатить
> что Я ему сказал и как Я ему сказал. Азъ!

А еще в твоих юниксах скоро будет rsyslog, с ElasticSearch (индексация логов). Который на Java.


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Мяут , 14-Дек-12 19:00 
Хм, а чем это лучше Cross-Reference типа LXR или OpenGrok? Последний еще и за счет Exuberant Ctags умеет понимать конструкции языка и поддерживает язык запросов.

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Andrey Mitrofanov , 14-Дек-12 19:05 
> дереву исходных текстов размером 2 Гб всего за 2 секунды (аналогичный
> поиск утилитой grep занимает 5 минут)

См.
google://google grep 30 GB s
и
прочие MapReduce

>. Подобная скорость достигается благодаря использованию


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 14-Дек-12 19:25 
Заметьте что гига _биты_. Не знаю кто меряет код в битах..., кроме маркетологов.

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено XoRe , 17-Дек-12 19:08 
> Заметьте что гига _биты_. Не знаю кто меряет код в битах..., кроме
> маркетологов.

Неправильно перевели.
В оригинальной новости 2G.


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 14-Дек-12 19:41 
> MIT и написана на языке C#

Угу, я уже побежал вкатывать моно на все серваки...


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Пингвино , 14-Дек-12 20:02 
> Угу, я уже побежал вкатывать моно на все серваки...

Ты такой смешной, хотя мне тебя жаль... Выполнять поиск по дереву исходных текстов на серверах. Ай-ай-ай! Да еще и на всех сразу! Работа сложная, ты устаешь, видимо, поэтому и мозг атрофируется...


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 15-Дек-12 23:13 
Ну дык автор rsyslog в следующей версии, чтобы догнать и перегнать поцтеринга, собирается запилить индексирование логов через elasticsearch, который на java. Тут хошь-нехошь, а придется на серваки ставить.

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 14-Дек-12 21:12 
>> MIT и написана на языке C#
> Угу, я уже побежал вкатывать моно на все серваки...

твой горе-локалхост теперь серваками зовётся?


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 14-Дек-12 19:46 
Офак. "Проиндексировал ли ты свои ихсодники?"...

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Пользователь Дебиан , 14-Дек-12 19:54 
Они не осилили `git grep`?

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 14-Дек-12 20:01 
> Они не осилили `git grep`?

Это дотнетчики. Ща они еще свой SVN напишут. Зато, блин, на дотнете :)


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 14-Дек-12 21:14 
>> Они не осилили `git grep`?
> Это дотнетчики. Ща они еще свой SVN напишут. Зато, блин, на дотнете
> :)

ты так раскудахтался, будто за свою никчёмную жизнь что-то сложнее пяти команд в шелле написал


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 14-Дек-12 22:00 
> ты так раскудахтался, будто за свою никчёмную жизнь что-то сложнее пяти команд
> в шелле написал

Батхерт у дотнетчика? Значит день удался!


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 15-Дек-12 20:35 
> Батхерт у дотнетчика? Значит день удался!

+100500 :-)



"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Crazy Alex , 14-Дек-12 20:10 
А всё обязано лежать в гите? Ну и их подход (я его выше описал) действительно весьма здрав, гит в большинстве случаев будет много медленнее.

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 14-Дек-12 20:47 
> А всё обязано лежать в гите?

Именно исходники - ну, почти. Поскольку там еще и версионирование есть.


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Crazy Alex , 14-Дек-12 22:30 
Во-первых есть и другие SCM. Во-вторых как лежали на сорсфорже тарболлы, так и лежат, никуда не делись. Без всякого гит. То же касается и всяко разных исходников для андроида под разные мобилы. Ну в-третьих - грепать много по чему можно, исходниками это ну никак не ограничивается.

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 15-Дек-12 00:23 
> Во-первых есть и другие SCM.

Есть. Просто они как правило менее удобны. Особенно для проектов где 2 гига хлама индексируется. И кстати он не требует никакого моно долбучего с его немеряной кучей либ.

> Во-вторых как лежали на сорсфорже тарболлы, так
> и лежат, никуда не делись. Без всякого гит.

Ну и пусть себе лежат. Тем кто оперирует тарболами обычно нафиг не уперлась какая-то индексация сорсов. Ибо не разработчики.

> То же касается и всяко разных исходников для андроида под разные мобилы.

У нормальных людей давно уже vcs есть. А у кого нету - гм, ну, мазохизм, наверное, имеет право на жизнь. Хотя особо удачливые мазохисты и дарвинисты опровергают этот тезис, успешно самовыпилившись.


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Crazy Alex , 15-Дек-12 18:34 
Поразвлекался тут...
Исходники к прошивке андоида от Асера какого-то. 4 гига.

git add - 9 с копейками минут. git commit - еще 3 минуты.
git grep simcom - 1 минута 40 секунд.

обычный grep - прервал через 10 минут, ни черта не выдало
ack - 1 минута 50 секунд.

И ack, и git grep вывели не все вхождения - пропустили бинари и что-то относящееся к сборке.

вышеуказанный скрипт добавлял 11 минут. Поиск по файлу с помощью zgrep - 46 секунд, Вытащил, разумеется, всё.


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Aleksey Salow , 15-Дек-12 20:32 
> вышеуказанный скрипт добавлял 11 минут. Поиск по файлу с помощью zgrep -
> 46 секунд, Вытащил, разумеется, всё.

А beagrep сколько?


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Crazy Alex , 15-Дек-12 21:25 
Поленился ставить. Но по идее - доли секунды поиск (там один запрос к индексу), а сама индексация - черт его знает...

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 15-Дек-12 20:38 
> Во-первых есть и другие SCM. Во-вторых как лежали на сорсфорже тарболлы, так
> и лежат, никуда не делись. Без всякого гит.

Сие есть правда. Как пложили их туда в начале нулевых - так и лежат. Не удаляюся но ии не обновляются.
А реальная жизнь нынче на других площадках, и что характерно - чаще с GIT :)


"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Crazy Alex , 15-Дек-12 21:34 
Что-то надо обновлять, что-то - нет. Много и на сорсфорже живого. Но суть не в том. Если нужен релиз (а как правило он и нужен) - чаще всего это таки тарболлы, даже если доступен версионник - обычно нужны дополнительные телодвижения, чтобы актуальный релиз из него дёрнуть.

"beagrep - индексируемый вариант grep, перебирающий 2 Гб кода..."
Отправлено Аноним , 15-Дек-12 23:15 
> Что-то надо обновлять, что-то - нет. Много и на сорсфорже живого. Но
> суть не в том. Если нужен релиз (а как правило он
> и нужен) - чаще всего это таки тарболлы, даже если доступен
> версионник - обычно нужны дополнительные телодвижения, чтобы актуальный релиз из него
> дёрнуть.

Обычно к версионнику добавляют веб-морду, а там вытянуть снапшот по тегу в виде архива - никакой проблемы.