The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  вход/выход  слежка  RSS
"Выпуск GNU grep 2.26"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск GNU grep 2.26"  +/
Сообщение от opennews (ok) on 03-Окт-16, 20:52 
Состоялся (http://www.mail-archive.com/info-gnu@gnu.org/msg02191.html) выпуск утилиты для организации поиска данных в текстовых файлах - GNU Grep 2.26 (http://www.gnu.org/software/grep/). В новом выпуске реализовано несколько существенных оптимизаций производительности:

-  Значительно увеличена скорость работы при направлении стандартного вывода в /dev/null;
-  Увеличена производительность поиска с использованием  шаблона из большого числа фиксированных строк ("grep -F"). Подобный поиск теперь осуществляется с применением алгоритма  Ахо—Корасика (https://ru.wikipedia.org/wiki/%D0%90%D0%...), вместо ранее используемого алгоритма  Коменца-Вальтера;

-  Ускорена работа поиска в режиме "grep -iF" в условиях когда в системе с многобайтовой локалью применяется маска, содержащая только однобайтные символы;

-  Для ускорения запросов со сложными выражениями (например, обратными ссылками), если не указана опция "-i", теперь применяются скомпилированные регулярные выражения  (regex fastmap);
-  На системах с многобайтовыми локалями увеличена эффективность обработки шаблонов, начинающихся с точки.

URL: http://www.mail-archive.com/info-gnu@gnu.org/msg02191.html
Новость: https://www.opennet.ru/opennews/art.shtml?num=45266

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Выпуск GNU grep 2.26"  +1 +/
Сообщение от Michael Shigorin email(ok) on 03-Окт-16, 20:52 
Да уж, кодировки с переменным размером символа всё аукаются и аукаются...
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Выпуск GNU grep 2.26"  +/
Сообщение от Crazy Alex (ok) on 03-Окт-16, 21:02 
Именно. Оставили бы одну латиницу - 256 символов как раз бы хватило на все умляуты и подобное. Всё равно дикарям с кириллицей и прочими иероглифами сложную технику давать нежелательно.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Выпуск GNU grep 2.26"  –4 +/
Сообщение от Аноним (??) on 03-Окт-16, 21:31 
Вы или крестик снимите (хватить жопничать байты для UCS-4), или трусы оденьте (KOI8-R во все стринги и чары).
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Выпуск GNU grep 2.26"  +1 +/
Сообщение от Stax (ok) on 03-Окт-16, 21:43 
А UCS-4 не текст, символы с кодом 0, однако. Вы предложите вариант, чтобы без управляющих символов в тексте.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

8. "Выпуск GNU grep 2.26"  –2 +/
Сообщение от Аноним (??) on 03-Окт-16, 23:15 
Я вообще предлагаю, разработать новую кодировку - машслово со времён 8битовых кодировок выросло в 8 раз, нет ни единой веской причины, кроме legacy, цепляться за эти волшебные 2^8. И да, память в "веские причины" не входит.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

13. "Выпуск GNU grep 2.26"  +/
Сообщение от Аноним (??) on 04-Окт-16, 10:21 
Нет ни единой веской причины разрабатывать кодировку с 8-байтным символом. Ошибки в некоторых продуктах при работе с символами переменной длины в "веские причины" не входят.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

30. "Выпуск GNU grep 2.26"  –1 +/
Сообщение от Аноним (??) on 04-Окт-16, 17:35 
Т.е. фортеля с сегментной памятью это хорошо и удобно, что аж перешли на модель плоской памяти? А уж как все были в восторге от циркового фокуса под названием PAE, когда в 32битные указатели вдруг вся эта плоская память стала не помещаться.
Я и говорю, или крестик снимите, или трусы наденьте. Эти грабли с символами переменной длины будут ещё очень долго икаться.
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

5. "Выпуск GNU grep 2.26"  +2 +/
Сообщение от Аноним (??) on 03-Окт-16, 21:46 
Помню, какая истерика была при переходе на 64-битную архитектуру, что, дескать, память жрёт, а тут все строки в 4 раза увеличить. Ну да, ну да.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

10. "Выпуск GNU grep 2.26"  +2 +/
Сообщение от Crazy Alex (ok) on 04-Окт-16, 00:50 
Лично меня текущая ситуация - UTF-8 на диске и то, что удобнее в каждом конкретном случае - в памяти - полностью устраивает. Это Шигорина опечалило то, что алгоритм поменяли. А ведь - слава utf-8 - поменяли не из-за того, что поломан, а только ради оптимизации.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

19. "Выпуск GNU grep 2.26"  +/
Сообщение от Аноноим on 04-Окт-16, 13:48 
UTF-8 не нужно по причине непредсказуемости того, сколько символов в этой кодировке можно запихнуть в массив размером столько-то байт. Чисто для примера возьмём максимальную длину имени файла в линуксовых файловых системах, то есть 255 байт. Сколько это будет не латинских букв и цифр при UTF-8? А хз: с кириллицей один результат, с иероглифами другой, с каким-нибудь санскритом или греческим третий. Как выделить в оперативке буфер для текста размером, например, в 1024 символа? Умножай это дело на 6, поскольку в теории символ utf-8 может весить до 6 байт и выделяй, ага:) И прочее и прочее.
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

21. "Выпуск GNU grep 2.26"  +2 +/
Сообщение от Аноним (??) on 04-Окт-16, 14:09 
А зачем нужно ровно 1024 символа?
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

25. "Выпуск GNU grep 2.26"  –1 +/
Сообщение от Аноноим on 04-Окт-16, 14:27 
1024 - просто для примера. Ёмкость какого-нибудь буфера для сетевых/файловых операций или ещё чего типа длины строки при использовании паскалеподобных языков, у которых она задаётся заранее вместо нулевого символа в качестве признака конца строки. Вот и думай что лучше: то ли вместо одного килобайта оперативки сразу шесть выделить и не мучиться, то ли ждать грабель из серии "последний символ в отведённой памяти целиком не поместился", либо "ой, блин, файл из архива не вынимается по причине русского и слишком длинного имени".
Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

22. "Выпуск GNU grep 2.26"  +3 +/
Сообщение от Stax (ok) on 04-Окт-16, 14:18 
Аллокация с запасом, realloc, аллокация связанных структур и т.д. и т.п.
Зачем вы в задаче работы с кодировками опускаетесь до нюансов, как оптимизировать аллокацию? Оставьте это другим. Тем более не могу представить задачи, когда в оперативке надо выделять память под utf-8 представление всего объема неких данных, которые есть в другом представлении юникода. Бред же какой-то. Работаете поблочно...

Проблема с длиной имен, конечно, есть, но только потому, что не придумали универсального и переносимого способа хранить метаинформацию произвольного файла, кроме имени. Вы никакой длиной и кодировкой эту проблему не решите, пока не будет стандарта на метаинформацию. Как дойдет прогресс до работы везде с object storage заместо фс, так и настанет счастье. Ну, относительно...

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

23. "Выпуск GNU grep 2.26"  –2 +/
Сообщение от iZEN email(ok) on 04-Окт-16, 14:21 
> Как выделить в оперативке буфер для текста размером, например, в 1024 символа? Умножай это дело на 6, поскольку в теории символ utf-8 может весить до 6 байт и выделяй, ага:) И прочее и прочее.

Проблемы сишников явистов и паскалистов не колышат!

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

26. "Выпуск GNU grep 2.26"  +2 +/
Сообщение от Аноноим on 04-Окт-16, 14:28 
>> Как выделить в оперативке буфер для текста размером, например, в 1024 символа? Умножай это дело на 6, поскольку в теории символ utf-8 может весить до 6 байт и выделяй, ага:) И прочее и прочее.
> Проблемы сишников явистов и паскалистов не колышат!

А фортеров не колышат проблемы и явистов с паскалистами:)

Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

37. "Выпуск GNU grep 2.26"  +1 +/
Сообщение от iZEN (ok) on 04-Окт-16, 21:11 
>>> Как выделить в оперативке буфер для текста размером, например, в 1024 символа? Умножай это дело на 6, поскольку в теории символ utf-8 может весить до 6 байт и выделяй, ага:) И прочее и прочее.
>> Проблемы сишников явистов и паскалистов не колышат!
> А фортеров не колышат проблемы и явистов с паскалистами:)

.точно Это


Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

48. "Выпуск GNU grep 2.26"  +/
Сообщение от Аноним Аналитег on 05-Окт-16, 20:23 
Проблемы несколько шире, в MariaDB/MySQL на символ utf8 аллокируется 3 байта, для четырех байтовых символов есть отдельный characterset, для пяти уже нету.
Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

27. "Выпуск GNU grep 2.26"  –1 +/
Сообщение от Michael Shigorin email(ok) on 04-Окт-16, 14:41 
> Это Шигорина опечалило то, что алгоритм поменяли.

Не-а.  Опечалило то, что из-за кривых данных пришлось сперва обтыкивать это всё горами костылей, а потом их ещё перекладывать.

Кто помнит, сколько времени и где/как в coreutils/grep/sed делали поддержку UTF-8 -- тот поймёт.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

6. "Выпуск GNU grep 2.26"  –8 +/
Сообщение от Michael Shigorin email(ok) on 03-Окт-16, 22:04 
> Именно. Оставили бы одну латиницу - 256 символов как раз бы хватило
> на все умляуты и подобное. Всё равно дикарям с кириллицей и
> прочими иероглифами сложную технику давать нежелательно.

Особенно мило это утверждение "дикаря" оттеняется разбором подавляющей части достижений "недикарей", сделанной "дикарями" в первом-втором поколении.

PS: подразумевал ИТ, по которым такой разбор на глаза и попадался.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

9. "Выпуск GNU grep 2.26"  +1 +/
Сообщение от Crazy Alex (ok) on 04-Окт-16, 00:47 
Ну дык - дикарское желание пробиться + образование/цивилизация... ;-)

P.S. Если кто-то не понял - предыдущий коммент - сарказм. Я хоть и не сторонник пихания в юникод всего, чего можно, включая клингон, но угадывать "а какая у этой хрени была кодировка" на порядок хуже.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

20. "Выпуск GNU grep 2.26"  +/
Сообщение от Michael Shigorin email(ok) on 04-Окт-16, 14:08 
> P.S. Если кто-то не понял - предыдущий коммент - сарказм.

Эт как раз понятно, просто смотришь на достижения "цивилизации" и понимаешь, что лучше б её такой не было вовсе.

> Я хоть и не сторонник пихания в юникод всего, чего можно, включая клингон,
> но угадывать "а какая у этой хрени была кодировка" на порядок хуже.

UCS-4 выглядит разумнее всем, кроме... обратной совместимости с семибитной ASCII.

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

51. "Выпуск GNU grep 2.26"  +/
Сообщение от noko on 31-Окт-16, 02:41 
Ахах, до сих пор 100% ватан)
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

17. "Выпуск GNU grep 2.26"  –1 +/
Сообщение от Клыкастый (ok) on 04-Окт-16, 12:13 
Михаил заработался и не смог в сарказм :)
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

11. "Выпуск GNU grep 2.26"  +/
Сообщение от Vkni (ok) on 04-Окт-16, 01:17 
> Всё равно дикарям с кириллицей и прочими иероглифами сложную технику давать нежелательно.

Алекс, через 30 лет вы на первое место поставите иероглифы, а дикари у вас будут с алфавитами.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

16. "Выпуск GNU grep 2.26"  +/
Сообщение от вотак on 04-Окт-16, 11:46 
>> Всё равно дикарям с кириллицей и прочими иероглифами сложную технику давать нежелательно.
> Алекс, через 30 лет вы на первое место поставите иероглифы, а дикари
> у вас будут с алфавитами.

расскажите нам а почему китайцы до сих пор не захватили монголию?

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

45. "Выпуск GNU grep 2.26"  –1 +/
Сообщение от Аноним (??) on 05-Окт-16, 01:55 
Гуглите, что такое "внутренняя монголия" и где она находится.
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

18. "Выпуск GNU grep 2.26"  –1 +/
Сообщение от Клыкастый (ok) on 04-Окт-16, 12:14 
> Алекс, через 30 лет вы на первое место поставите иероглифы, а дикари у вас будут с алфавитами.

в Поднебесной уже давно так.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

24. "Выпуск GNU grep 2.26"  –1 +/
Сообщение от iZEN email(ok) on 04-Окт-16, 14:22 
>> Алекс, через 30 лет вы на первое место поставите иероглифы, а дикари у вас будут с алфавитами.
> в Поднебесной уже давно так.

В Японии же.


Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

28. "Выпуск GNU grep 2.26"  –1 +/
Сообщение от Клыкастый (ok) on 04-Окт-16, 14:50 
> В Японии же.

почему у одичавших на острове китайцев будет поиначе? :)


Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

33. "Выпуск GNU grep 2.26"  +/
Сообщение от Crazy Alex (ok) on 04-Окт-16, 19:20 
Японская письменность весьма условно иероглифы - их там что-то около трёх тысяч употребляется, всё остальное добирается слоговым письмом. Примерным аналогом их иероглифов в алфавитных языках можно считать корни слов.
Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

34. "Выпуск GNU grep 2.26"  +/
Сообщение от Crazy Alex (ok) on 04-Окт-16, 19:21 
Я ж говорю - дикари
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

32. "Выпуск GNU grep 2.26"  +/
Сообщение от Crazy Alex (ok) on 04-Окт-16, 19:16 
Я (возможно, предвзято) придерживаюсь мнения, что цивилизация в её современном/будущем виде с иероглифами совместима плохо. По причинам в основном психологического толка. Пока это подтверждается - товарищи, у которых нет алфавита, всё ещё догоняют и копируют, хоть и на очень хорошем уровне. Оригинальных открытий/изобретений особо не видно.
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

36. "Выпуск GNU grep 2.26"  +/
Сообщение от Michael Shigorin email(ok) on 04-Окт-16, 19:57 
> товарищи, у которых нет алфавита

Напомню про опиумные войны -- сдаётся мне, разница ещё и в совести либо её отсутствии.

Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

38. "Выпуск GNU grep 2.26"  +/
Сообщение от Vkni (ok) on 04-Окт-16, 21:26 
> Я (возможно, предвзято) придерживаюсь мнения, что цивилизация в её современном/будущем
> виде с иероглифами совместима плохо.

Алекс, ну ты что, ну зачем учить 33 буквы, когда можно выучить 3 тысячи иероглифов!!! :-)

Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

43. "Выпуск GNU grep 2.26"  +/
Сообщение от fail on 05-Окт-16, 00:04 
>> Я (возможно, предвзято) придерживаюсь мнения, что цивилизация в её современном/будущем
>> виде с иероглифами совместима плохо.
> Алекс, ну ты что, ну зачем учить 33 буквы, когда можно выучить
> 3 тысячи иероглифов!!! :-)

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

Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

40. "Выпуск GNU grep 2.26"  +/
Сообщение от Led (ok) on 04-Окт-16, 23:28 
Это не однобайнтные кодировки аукаются, а однобайтные терминалы.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

46. "Выпуск GNU grep 2.26"  +/
Сообщение от Crazy Alex (ok) on 05-Окт-16, 04:31 
О том, как терминалы аукаются, вообще вспоминать неохота.
Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

7. "Выпуск GNU grep 2.26"  +9 +/
Сообщение от KonstantinB (ok) on 03-Окт-16, 22:25 
> Значительно увеличена скорость работы при направлении стандартного вывода в /dev/null

Web scale!

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

15. "Выпуск GNU grep 2.26"  +2 +/
Сообщение от IZh. on 04-Окт-16, 10:36 
А ещё вечный цикл стал выполняться в два раза быстрее. ;-)
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

14. "Выпуск GNU grep 2.26"  –2 +/
Сообщение от Аноним (??) on 04-Окт-16, 10:24 
Когда уже добавят поддержку systemd?

Жду-недождусь systemd-grepd с поддержкой multiseat!

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

29. "Выпуск GNU grep 2.26"  –1 +/
Сообщение от XoRe (ok) on 04-Окт-16, 15:25 
> Значительно увеличена скорость работы при направлении стандартного вывода в /dev/null;

Просто делает вид, что работает, раз вывод не нужен?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

31. "Выпуск GNU grep 2.26"  +/
Сообщение от Анонимкин on 04-Окт-16, 19:11 
Вполне рабочий кейз:
[lexa@centos-test ~]$ cat text.txt
some text
[lexa@centos-test ~]$ grep some text.txt > /dev/null
[lexa@centos-test ~]$ echo $?
0
[lexa@centos-test ~]$ grep same text.txt > /dev/null
[lexa@centos-test ~]$ echo $?
1
Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

42. "Выпуск GNU grep 2.26"  +1 +/
Сообщение от Led (ok) on 04-Окт-16, 23:34 
-q не осилил?
Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

35. "Выпуск GNU grep 2.26"  –1 +/
Сообщение от Crazy Alex (ok) on 04-Окт-16, 19:21 
Может интересовать только $?, например
Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

39. "Выпуск GNU grep 2.26"  +1 +/
Сообщение от Andrey Mitrofanov on 04-Окт-16, 21:28 
>> Значительно увеличена скорость работы при направлении стандартного вывода в /dev/null;
> Просто делает вид, что работает, раз вывод не нужен?

Скорее -m1 -q ж симулирует.

И вообще, там http://git.savannah.gnu.org/gitweb/?p=grep.git&a=search&h=v2... же есть http://git.savannah.gnu.org/gitweb/?p=grep.git;a=commit;h=af... git.

Ускоряем /dev/null, дай Керниган кажому:
This sped up 'seq 10000000000 | grep . >/dev/null' by a factor of 380,000 on my platform

Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

47. "Выпуск GNU grep 2.26"  –2 +/
Сообщение от curious on 05-Окт-16, 13:31 
> Значительно увеличена скорость работы при направлении стандартного вывода в /dev/null;

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

49. "Выпуск GNU grep 2.26"  +1 +/
Сообщение от Andrey Mitrofanov on 06-Окт-16, 09:38 
>> Значительно увеличена скорость работы при направлении стандартного вывода в /dev/null;
> Мне кажется, что нефиг программе знать куда я её вывод перенаправляю (и
> менять своё поведение из-за этого).

А я вот уверен, что уважающая _меня_ программа должна грепать в дев-нулл быстро, как только может.

Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

50. "Выпуск GNU grep 2.26"  +1 +/
Сообщение от анон on 07-Окт-16, 15:29 
Скажи это --color=auto
Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2020 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру