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 Гб кода...,Аноним, 18:20 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 18:23 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,GentooBoy, 18:30 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 19:46 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,anonymous, 19:50 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,ZloySergant, 19:54 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,develop7, 20:13 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 20:44 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,GentooBoy, 23:02 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 19:02 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 19:47 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Карбофос, 20:41 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 23:04 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 00:18 , 15-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Кевин, 03:50 , 15-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 23:25 , 15-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,develop7, 18:34 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 19:48 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 23:17 , 15-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 16:43 , 16-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,develop7, 20:29 , 16-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,ig0r, 18:45 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,абыр, 18:52 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,anonim, 19:27 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Пингвино, 19:49 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,anonymous, 19:52 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Пингвино, 20:05 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 23:18 , 15-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,BratSinot, 19:25 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Grammar Nazi, 19:34 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Crazy Alex, 19:54 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,ВасисуалиьМихаил, 14:14 , 15-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 19:43 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 21:15 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 21:58 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 20:25 , 15-Дек-12
- нате вам индексатор,Васисуалиь, 18:47 , 14-Дек-12
- нате вам индексатор,Васисуалиь, 19:07 , 14-Дек-12
- нате вам индексатор,Crazy Alex, 19:59 , 14-Дек-12
- нате вам индексатор,ВасисуалиьМихаил, 14:12 , 15-Дек-12
- нате вам индексатор,Crazy Alex, 17:36 , 15-Дек-12
- нате вам индексатор,Васисуалиь, 13:28 , 18-Дек-12
- нате вам индексатор,Aleksey Salow, 02:04 , 15-Дек-12
- нате вам индексатор,ВасисуалиьМихаил, 14:11 , 15-Дек-12
- нате вам индексатор,Aleksey Salow, 14:24 , 15-Дек-12
- нате вам индексатор,Васисуалиь, 13:26 , 18-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 18:54 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 18:56 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,гость, 19:19 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Andrey Mitrofanov, 19:21 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 19:49 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Mr. Cake, 17:30 , 15-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Crazy Alex, 20:06 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 20:34 , 15-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 23:23 , 15-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Мяут, 19:00 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Andrey Mitrofanov, 19:05 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 19:25 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,XoRe, 19:08 , 17-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 19:41 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Пингвино, 20:02 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 23:13 , 15-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 21:12 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 19:46 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Пользователь Дебиан, 19:54 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 20:01 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 21:14 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 22:00 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 20:35 , 15-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Crazy Alex, 20:10 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 20:47 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Crazy Alex, 22:30 , 14-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 00:23 , 15-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Crazy Alex, 18:34 , 15-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Aleksey Salow, 20:32 , 15-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Crazy Alex, 21:25 , 15-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 20:38 , 15-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Crazy Alex, 21:34 , 15-Дек-12
- beagrep - индексируемый вариант grep, перебирающий 2 Гб кода...,Аноним, 23:15 , 15-Дек-12
Сообщения в этом обсуждении
"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
> Что-то надо обновлять, что-то - нет. Много и на сорсфорже живого. Но
> суть не в том. Если нужен релиз (а как правило он
> и нужен) - чаще всего это таки тарболлы, даже если доступен
> версионник - обычно нужны дополнительные телодвижения, чтобы актуальный релиз из него
> дёрнуть.Обычно к версионнику добавляют веб-морду, а там вытянуть снапшот по тегу в виде архива - никакой проблемы.