powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / С++11 regex
47 сообщений из 47, показаны все 2 страниц
С++11 regex
    #38821826
BagaBaga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Играюсь понемногу с новым в С++11.
Пытаюсь задать регулярное выражение, "строка заканчивается на abc"

Код: plaintext
1.
2.
3.
string str = "ddd aaa abc";
regex r ("abc$");
cout << regex_search(str, r);



Но что-то не получается. Где можно посмотреть синтаксис регулярных выражений и что здесь не так?
...
Рейтинг: 0 / 0
С++11 regex
    #38821847
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BagaBaga,

Используй regex_match
...
Рейтинг: 0 / 0
С++11 regex
    #38821852
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NekZИспользуй regex_match
В данном случае нужен именно regex_search.
BagaBagaПытаюсь задать регулярное выражение, "строва заканчивается на abc"
Код: plaintext
1.
2.
3.
string str = "ddd aaa abc";
regex r ("abc$");
cout << regex_search(str, r);


Но что-то не получается.
Код правильный.
Должен вывести true(1).
Если вы ждете чего-то другого, то зря :)
...
Рейтинг: 0 / 0
С++11 regex
    #38821944
BagaBaga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отвечу всем. Должен вывести True. Выводит 0. Что есть False.

Похоже, что получилось как в том анекдоте:
Когда ты думаешь, что можешь решить проблему с помощью регулярных выражений,
ты получаешь две проблемы - исходную, и регулярные выражения :)

PS
В моём случае ерунда, как понимаю, из-за неполной реализации regex в gcc 4.8.3.
...
Рейтинг: 0 / 0
С++11 regex
    #38821956
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BagaBaga,

Судя по всему там не то что бы неполная реализация. Там просто заглушки :)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631

Реализовали в GCC 4.9
...
Рейтинг: 0 / 0
С++11 regex
    #38821957
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К счастью всегда есть Boost :)
...
Рейтинг: 0 / 0
С++11 regex
    #38821961
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что-то у меня тоже ничего не получается...
Linux, GCC...

Код: plaintext
1.
2.
3.
string str = "ddd aaa abc";
regex r ("abc$");
cout << regex_search(str, r);



-- это ноль выводит.

На счёт search/match -- я бы использовал match и другой (естественно) regexp.
Код: plaintext
1.
regex r (".*abc$");
...
Рейтинг: 0 / 0
С++11 regex
    #38821963
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
ziv@mole:~/w/afs/trunk/matlab/afsstudy-debug$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.6/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) 

Да, я буст regex тоже люблю. Он работает...
...
Рейтинг: 0 / 0
С++11 regex
    #39074097
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В VS 2013 Express такой код
Код: plaintext
1.
2.
3.
	string str = "ddd aaa abc";
	regex r("abc$");
	printf("%i\n", regex_search(str, r));


выводит истину.

А в стандарте дано каким алгоритмом происходит поиск ? В 28 разделе не встретил и не указана асимптотика (или я не заметил).
...
Рейтинг: 0 / 0
С++11 regex
    #39074146
BagaBaga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury,
а разве стандарт должен это описывать?
...
Рейтинг: 0 / 0
С++11 regex
    #39074522
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы либо неудачные примеры находите либо никогда не оптимизируете.

У меня глядя на этот пример возникает мысль - OMG! Это решается проверкой length, substring и проверкой на равенство "==".
...
Рейтинг: 0 / 0
С++11 regex
    #39074576
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryВ VS 2013 Express такой код
Код: plaintext
1.
2.
3.
	string str = "ddd aaa abc";
	regex r("abc$");
	printf("%i\n", regex_search(str, r));



выводит истину.

А в стандарте дано каким алгоритмом происходит поиск ? В 28 разделе не встретил и не указана асимптотика (или я не заметил).
А что, бывают разные алгоритмы регулярок? Спасибо, не знал ))))
...
Рейтинг: 0 / 0
С++11 regex
    #39074579
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВы либо неудачные примеры находите либо никогда не оптимизируете.

У меня глядя на этот пример возникает мысль - OMG! Это решается проверкой length, substring и проверкой на равенство "==".
А это уже избыточная и преждевременная оптимизация.
...
Рейтинг: 0 / 0
С++11 regex
    #39074581
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskySashaMercuryВ VS 2013 Express такой код
Код: plaintext
1.
2.
3.
	string str = "ddd aaa abc";
	regex r("abc$");
	printf("%i\n", regex_search(str, r));



выводит истину.

А в стандарте дано каким алгоритмом происходит поиск ? В 28 разделе не встретил и не указана асимптотика (или я не заметил).
А что, бывают разные алгоритмы регулярок? Спасибо, не знал ))))

Есть разные реализации, их как минимум две. Классическая и перловая. Перловая требует память.
...
Рейтинг: 0 / 0
С++11 regex
    #39074585
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryвыводит истину.
MasterZivЕсть разные реализации, их как минимум две. Классическая и перловая. Перловая требует память.
Я думал, что речь про другие алгоритмы, которые могут дать другой результат ))

Так то оно понятно, что есть реализации разные, как минимум через DFA, NFA, и кривыми ручками )).
...
Рейтинг: 0 / 0
С++11 regex
    #39074703
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskymaytonВы либо неудачные примеры находите либо никогда не оптимизируете.

У меня глядя на этот пример возникает мысль - OMG! Это решается проверкой length, substring и проверкой на равенство "==".
А это уже избыточная и преждевременная оптимизация.
Ага.

Вот копипащу кусок проекта цена которого более чем шестизначная. И я такое вижу каждый день и много.
И вы думаете этот код писал чайничек? Нет. Куева туча сертифицированных синьоров-помидоров.
По рупам. По всем технологиями. По шаблонам и с полным циклом бизнес анализа. Только работает он медленно. И таких коде-блоков более пятисот.
Код: java
1.
2.
3.
4.
5.
6.
if (expr.matches("^[\\d]{9}$")
                            || expr.matches("^[\\d]{10}$")
                            || expr.matches("^[\\d]{12}$")) {
  ...

}


И никто не думал об оптимизациях. Тоже рассуждали ... дескыть преждевременно и т.д.
...
Рейтинг: 0 / 0
С++11 regex
    #39074745
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТолько работает он медленно.
Медленно, это понятие относительное.
Без контекста нет смысла обсуждать оптимизации и тем более их делать.
...
Рейтинг: 0 / 0
С++11 regex
    #39074868
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда... контекст это... это сила.
...
Рейтинг: 0 / 0
С++11 regex
    #39074871
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Боюсь показаться тупым (регулярных выражений не знаю), но спрошу, что значит expr.matches("^[\\d]{9}$") ?
...
Рейтинг: 0 / 0
С++11 regex
    #39074874
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TБоюсь показаться тупым (регулярных выражений не знаю), но спрошу, что значит expr.matches("^[\\d]{9}$") ?Зависит от реализации. Но скорее всего это вернет true если строка состоит из девяти цифр.
А на V7 это вернет true если строка состоит из девяти букв 'd' или '\'.
...
Рейтинг: 0 / 0
С++11 regex
    #39074880
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlА на V7 это вернет true если строка состоит из девяти букв 'd' или '\'.
Там что убрали поддержку класса \d ?
Сильно сомневаюсь.
...
Рейтинг: 0 / 0
С++11 regex
    #39074887
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlЗависит от реализации. Но скорее всего это вернет true если строка состоит из девяти цифр.
Тогда понятно негодование mayton`а. Такое бывает когда каждый пишет свой кусок не задумываясь о целом. Ошибки проектирования. Никто изначально не сказал что могут быть только цифры, поэтому максимальная проверка. mayton, синьоры-помидоры успешно сдали свою работу. Просто цель у них была сдать работу, а не что-то другое.
...
Рейтинг: 0 / 0
С++11 regex
    #39074889
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyWhite OwlА на V7 это вернет true если строка состоит из девяти букв 'd' или '\'.
Там что убрали поддержку класса \d ?
Сильно сомневаюсь.
Просто White Owl совершил, наверное, самую типичную ошибку при написании регулярок: то ли двойных кавычек не заметил, то ли просто интуитивно решил, что там сначала идёт \, а уже потом \d. :) Я так частенько, почему-то именно с регулярными выражениями ошибаюсь.
...
Рейтинг: 0 / 0
С++11 regex
    #39074890
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyWhite OwlА на V7 это вернет true если строка состоит из девяти букв 'd' или '\'.
Там что убрали поддержку класса \d ?
Сильно сомневаюсь.Неа, не убирали, а не вводили, не успели потому что :) В V7 были классы :digit:, :alpha: и так далее.
Потом в свободном доступе появилась библиотека pcre и posix, да и все остальные отстающие системы, быстренько подтянулись до современности.
Зато в обиход вошло (и некоторое время существовало) определение "shorthand character classes" как раз для всяких \d и \w. Впрочем, этот термин я уже лет десять не слышал.
...
Рейтинг: 0 / 0
С++11 regex
    #39074892
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonAnatoly Moskovskyпропущено...

А это уже избыточная и преждевременная оптимизация.
Ага.

Вот копипащу кусок проекта цена которого более чем шестизначная. И я такое вижу каждый день и много.
И вы думаете этот код писал чайничек? Нет. Куева туча сертифицированных синьоров-помидоров.
По рупам. По всем технологиями. По шаблонам и с полным циклом бизнес анализа. Только работает он медленно. И таких коде-блоков более пятисот.
Код: java
1.
2.
3.
4.
5.
6.
if (expr.matches("^[\\d]{9}$")
                            || expr.matches("^[\\d]{10}$")
                            || expr.matches("^[\\d]{12}$")) {
  ...

}


И никто не думал об оптимизациях. Тоже рассуждали ... дескыть преждевременно и т.д.
А как нужно было сделать? Так или отказаться от регулярок?
Код: java
1.
2.
3.
4.
if (expr.matches("^\\d{9, 10}\\d{2}?$"){
  ...

}


Сорри протестировать не могу это выражение, но идея понятна должна быть.
...
Рейтинг: 0 / 0
С++11 regex
    #39074893
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,

Хотя нет, неправильно я написал. 11 чисел тоже пропустит моё выражение :(
...
Рейтинг: 0 / 0
С++11 regex
    #39074895
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во!

Код: plaintext
1.
2.
3.
4.
if (expr.matches("^(\\d{9, 10})|(\\d{12})$")
{
    // ...
}
...
Рейтинг: 0 / 0
С++11 regex
    #39074899
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravСорри протестировать не могу это выражение, но идея понятна должна быть.
У меня щас нет реквеста на баг или фичу для этого кода. Но как - только будет я уж
оттянусь.

Изначально - планировал выкинуть регулярки нахер. Но потом по смыслу когда - где-то идёт
парсинг телефона. Где-то zip-code. Где-то даты. Планирую хотя-бы обеспечить повторное использование
Matcher.

В данном - кейсе строка цифр от 9 до 12. Не включая строку длиной 11.
...
Рейтинг: 0 / 0
С++11 regex
    #39074911
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonИзначально - планировал выкинуть регулярки нахер. Но потом по смыслу когда - где-то идёт
парсинг телефона. Где-то zip-code. Где-то даты.
Если это полноценная БД: для начала выкинуть все значения несоответствующие формату. Не вписываются - поставить NULL. Если даты, то 32-го числа не бывает и т.д и т.п. Отфильтровав некорректные значения на уровне вставки - значительно упростишь последующие проверки.
maytonВ данном - кейсе строка цифр от 9 до 12. Не включая строку длиной 11.
Не буду раздувать, думаю ты понял вышесказанное. Как говорил мой начальник "Бардак автоматизировать нельзя".
...
Рейтинг: 0 / 0
С++11 regex
    #39074928
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlНеа, не убирали, а не вводили, не успели потому что :) В V7 были классы :digit:, :alpha: и так далее.
Это же mayton код постил, и я думал что V7 это про java 7 ))
А если V7 это про движок джаваскрипта - тогда верю что через одно место было сделано ))
...
Рейтинг: 0 / 0
С++11 regex
    #39074929
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonУ меня щас нет реквеста на баг или фичу для этого кода. Но как - только будет я уж
оттянусь.

Изначально - планировал выкинуть регулярки нахер. Но потом по смыслу когда - где-то идёт
парсинг телефона. Где-то zip-code. Где-то даты. Планирую хотя-бы обеспечить повторное использование
Matcher.
Если это валидация ввода, то оптимизировать надо не тут, а то место в котором эта валидация вызывается настолько часто, что имеют значение задержки в доли миллисекунд.
...
Рейтинг: 0 / 0
С++11 regex
    #39074932
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravВо!

Код: plaintext
1.
2.
3.
4.
if (expr.matches("^(\\d{9, 10})|(\\d{12})$")
{
    // ...
}


Скорее всего имелась в виду оптимизация типа такого:
Код: plaintext
1.
2.
3.
if (expr.matches("^\\d+$") && (expr.size() == 9 || expr.size() == 11 ...))
{
}


А потом заказчик захочет поддержку дефисов и скобочек и вся оптимизация к черту ))
...
Рейтинг: 0 / 0
С++11 regex
    #39074937
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyWhite OwlНеа, не убирали, а не вводили, не успели потому что :) В V7 были классы :digit:, :alpha: и так далее.
Это же mayton код постил, и я думал что V7 это про java 7 ))
А если V7 это про движок джаваскрипта - тогда верю что через одно место было сделано ))Не, я говорил исключительно про эхотаг :)
Регулярки появились еще в 50-х, но очень долго люди не могли определиться с синтаксисом и каждый делал (да и продолжают делать) кто во что горазд. Ну и в никсах/posix довольно долго была своя собственная реализация, которая и развивалась самостоятельно под своими номерами и именовалась "V#". Насколько я знаю V7 была последней перед вводом PCRE в стандарт в качестве основной реализации.
...
Рейтинг: 0 / 0
С++11 regex
    #39074938
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyСкорее всего имелась в виду оптимизация типа такого:
Код: plaintext
1.
2.
3.
if (expr.matches("^\\d+$") && (expr.size() == 9 || expr.size() == 11 ...))
{
}

Тогда лучше:

Код: plaintext
1.
2.
3.
if (!expr.matches("\\w") && (expr.size() == 9 || expr.size() == 10 || expr.size() == 12))
{
}
...
Рейтинг: 0 / 0
С++11 regex
    #39074964
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskypetravВо!

Код: plaintext
1.
2.
3.
4.
if (expr.matches("^(\\d{9, 10})|(\\d{12})$")
{
    // ...
}


Скорее всего имелась в виду оптимизация типа такого:
Код: plaintext
1.
2.
3.
if (expr.matches("^\\d+$") && (expr.size() == 9 || expr.size() == 11 ...))
{
}


А потом заказчик захочет поддержку дефисов и скобочек и вся оптимизация к черту ))
Да, ваш вариант быстрее. Я как-то больше думал над устранением дублирования кода (исходный вариант с тремя регулярками был ужасен). Но если думать именно о производительности, то, имхо, там легче написать свою функцию проверки — там всего несколько строк — и отказаться от регулярок. Думаю будет на порядок быстрее.
...
Рейтинг: 0 / 0
С++11 regex
    #39074973
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyЕсли это валидация ввода, то оптимизировать надо не тут, а то место в котором эта валидация вызывается настолько часто, что имеют значение задержки в доли миллисекунд.
В этом комплексе 20 тыс пользователей. И каждый поисковый запрос (типа
полнотекстового поиска) проходит длинный конвейер проверок в т.ч. и эти
регулярки.

Впрочем я не хочу оффтопить и отвлекать от главной темы.
...
Рейтинг: 0 / 0
С++11 regex
    #39075145
Зимаргл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

Если не ошибаюсь, мы как то уже гоняли тесты буустовских регулярок. Порядок скорости был типа миллион в секунду.
...
Рейтинг: 0 / 0
С++11 regex
    #39075252
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зимарглmayton,

Если не ошибаюсь, мы как то уже гоняли тесты буустовских регулярок. Порядок скорости был типа миллион в секунду.
Э... во первых я про буст. Я вообще в принципе ворчу. На юзкейсы.

Во вторых мне как человеку дотошному и занудному совершенно непонятна фраза
"миллион в секунду". Миллион попугаев или слонёнков. За кадром остаётся сложность самой регулярки.
А это - ни хер собачий. Это конечный автомат мать его. И отклик от него (наверное) зависит от того как
выглядит сам expression. И наверное отклик зависит от длинны строки которую мы анализируем.

Поэтому фраза 1000000 в сек. это как-то ниочём. Ну тоесть для меня она неинформативна.
...
Рейтинг: 0 / 0
С++11 regex
    #39075599
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПоэтому фраза 1000000 в сек. это как-то ниочём. Ну тоесть для меня она неинформативна.
Гггг. Это написал человек, который в описании проблемы указал только:
maytonТолько работает он медленно.

1000000 - это хоть какая-то конкретика, верхний предел скорости.
А вот что такое "медленно" мы так и не узнали.
...
Рейтинг: 0 / 0
С++11 regex
    #39075614
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока тут вообще никакой конкретики ;) Марк об этом подробно написал
...
Рейтинг: 0 / 0
С++11 regex
    #39075619
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
10^6 может быть, но не значит что это максимум, среднее или что-то ещё. Такое число может быть
...
Рейтинг: 0 / 0
С++11 regex
    #39075641
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky1000000 - это хоть какая-то конкретика, верхний предел скорости.
А вот что такое "медленно" мы так и не узнали.
Есть разные подходы к оценке производительности. Мой базируется на вычислении
НАПРАВЛЕНИЙ куда можно улучшать. В данном случае как решили коллеги
(совершенно верно) в устранении ненужных или покрывающих друг друга
предикатов.

Выше мне сказали дескыть - авот в бусте - 1000000 чего-то там такого. И что?
И где? И как? И какой был best practices? Просто я не понимаю какую инфу я из
этого должен взять? Что мне надо юзать буст?

Извините меня дорогие коллеги. Ну также нельзя ну ё-моё.
...
Рейтинг: 0 / 0
С++11 regex
    #39075952
Зимаргл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

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

Хочешь подробности - делай конкретный юзкейс и тестируй.
...
Рейтинг: 0 / 0
С++11 regex
    #39076019
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonAnatoly Moskovsky1000000 - это хоть какая-то конкретика, верхний предел скорости.
А вот что такое "медленно" мы так и не узнали.
Есть разные подходы к оценке производительности. Мой базируется на вычислении
НАПРАВЛЕНИЙ куда можно улучшать. В данном случае как решили коллеги
(совершенно верно) в устранении ненужных или покрывающих друг друга
предикатов.

Выше мне сказали дескыть - авот в бусте - 1000000 чего-то там такого. И что?
И где? И как? И какой был best practices? Просто я не понимаю какую инфу я из
этого должен взять? Что мне надо юзать буст?

Извините меня дорогие коллеги. Ну также нельзя ну ё-моё.
Не согласен. Реализация на Си быстрее, как понимаю, задача у тебя устоявшаяся и требующая ускорения, т.е. переписав ее на С ты однозначно получишь ускорение, а буст или не буст зависит только от задачи. Оптимизировать излишние проверки и в С не помешает.
...
Рейтинг: 0 / 0
С++11 regex
    #39076053
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TНе согласен. Реализация на Си быстрее, как понимаю, задача у тебя устоявшаяся и требующая ускорения, т.е. переписав ее на С ты однозначно получишь ускорение, а буст или не буст зависит только от задачи. Оптимизировать излишние проверки и в С не помешает.
Полностью исключено. Заказчик будет против. +Там наши собственные требования по интеграции.
Java + несколько слоёв кодогенерации. Аспекты и кросскомпилляторы.

Подключение JNI сделает задачу непрозрачной для тестирования на Linux да и вообще добавляет
огромное количество кейсов исследования. Вобщем отпадает.

По поводу бенчмарков - это тема. Я буду писать модульные тесты когда переколбашу модуль
поиска. Тогда у меня будут цифры. Сколько там поисков в секунду. БД заменю на Mocks
чтобы убрать случайные влияния и можно будет видеть чистый алгоритм с регулярками.
...
Рейтинг: 0 / 0
С++11 regex
    #39076070
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonнесколько слоёв кодогенерации
Начните отсюда оптимизировать, потом уже микросекундами займетесь ))
...
Рейтинг: 0 / 0
С++11 regex
    #39076089
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Закончим на этом.
...
Рейтинг: 0 / 0
47 сообщений из 47, показаны все 2 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / С++11 regex
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]