Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
С++11 regex
|
|||
|---|---|---|---|
|
#18+
petrav, Хотя нет, неправильно я написал. 11 чисел тоже пропустит моё выражение :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2015, 20:14 |
|
||
|
С++11 regex
|
|||
|---|---|---|---|
|
#18+
Во! Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2015, 20:17 |
|
||
|
С++11 regex
|
|||
|---|---|---|---|
|
#18+
petravСорри протестировать не могу это выражение, но идея понятна должна быть. У меня щас нет реквеста на баг или фичу для этого кода. Но как - только будет я уж оттянусь. Изначально - планировал выкинуть регулярки нахер. Но потом по смыслу когда - где-то идёт парсинг телефона. Где-то zip-code. Где-то даты. Планирую хотя-бы обеспечить повторное использование Matcher. В данном - кейсе строка цифр от 9 до 12. Не включая строку длиной 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2015, 20:22 |
|
||
|
С++11 regex
|
|||
|---|---|---|---|
|
#18+
maytonИзначально - планировал выкинуть регулярки нахер. Но потом по смыслу когда - где-то идёт парсинг телефона. Где-то zip-code. Где-то даты. Если это полноценная БД: для начала выкинуть все значения несоответствующие формату. Не вписываются - поставить NULL. Если даты, то 32-го числа не бывает и т.д и т.п. Отфильтровав некорректные значения на уровне вставки - значительно упростишь последующие проверки. maytonВ данном - кейсе строка цифр от 9 до 12. Не включая строку длиной 11. Не буду раздувать, думаю ты понял вышесказанное. Как говорил мой начальник "Бардак автоматизировать нельзя". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2015, 20:51 |
|
||
|
С++11 regex
|
|||
|---|---|---|---|
|
#18+
White OwlНеа, не убирали, а не вводили, не успели потому что :) В V7 были классы :digit:, :alpha: и так далее. Это же mayton код постил, и я думал что V7 это про java 7 )) А если V7 это про движок джаваскрипта - тогда верю что через одно место было сделано )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2015, 21:23 |
|
||
|
С++11 regex
|
|||
|---|---|---|---|
|
#18+
maytonУ меня щас нет реквеста на баг или фичу для этого кода. Но как - только будет я уж оттянусь. Изначально - планировал выкинуть регулярки нахер. Но потом по смыслу когда - где-то идёт парсинг телефона. Где-то zip-code. Где-то даты. Планирую хотя-бы обеспечить повторное использование Matcher. Если это валидация ввода, то оптимизировать надо не тут, а то место в котором эта валидация вызывается настолько часто, что имеют значение задержки в доли миллисекунд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2015, 21:26 |
|
||
|
С++11 regex
|
|||
|---|---|---|---|
|
#18+
petravВо! Код: plaintext 1. 2. 3. 4. Скорее всего имелась в виду оптимизация типа такого: Код: plaintext 1. 2. 3. А потом заказчик захочет поддержку дефисов и скобочек и вся оптимизация к черту )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2015, 21:31 |
|
||
|
С++11 regex
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyWhite OwlНеа, не убирали, а не вводили, не успели потому что :) В V7 были классы :digit:, :alpha: и так далее. Это же mayton код постил, и я думал что V7 это про java 7 )) А если V7 это про движок джаваскрипта - тогда верю что через одно место было сделано ))Не, я говорил исключительно про эхотаг :) Регулярки появились еще в 50-х, но очень долго люди не могли определиться с синтаксисом и каждый делал (да и продолжают делать) кто во что горазд. Ну и в никсах/posix довольно долго была своя собственная реализация, которая и развивалась самостоятельно под своими номерами и именовалась "V#". Насколько я знаю V7 была последней перед вводом PCRE в стандарт в качестве основной реализации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2015, 21:46 |
|
||
|
С++11 regex
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyСкорее всего имелась в виду оптимизация типа такого: Код: plaintext 1. 2. 3. Тогда лучше: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2015, 21:48 |
|
||
|
С++11 regex
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskypetravВо! Код: plaintext 1. 2. 3. 4. Скорее всего имелась в виду оптимизация типа такого: Код: plaintext 1. 2. 3. А потом заказчик захочет поддержку дефисов и скобочек и вся оптимизация к черту )) Да, ваш вариант быстрее. Я как-то больше думал над устранением дублирования кода (исходный вариант с тремя регулярками был ужасен). Но если думать именно о производительности, то, имхо, там легче написать свою функцию проверки — там всего несколько строк — и отказаться от регулярок. Думаю будет на порядок быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2015, 22:50 |
|
||
|
С++11 regex
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyЕсли это валидация ввода, то оптимизировать надо не тут, а то место в котором эта валидация вызывается настолько часто, что имеют значение задержки в доли миллисекунд. В этом комплексе 20 тыс пользователей. И каждый поисковый запрос (типа полнотекстового поиска) проходит длинный конвейер проверок в т.ч. и эти регулярки. Впрочем я не хочу оффтопить и отвлекать от главной темы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2015, 23:09 |
|
||
|
С++11 regex
|
|||
|---|---|---|---|
|
#18+
mayton, Если не ошибаюсь, мы как то уже гоняли тесты буустовских регулярок. Порядок скорости был типа миллион в секунду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2015, 10:14 |
|
||
|
С++11 regex
|
|||
|---|---|---|---|
|
#18+
Зимарглmayton, Если не ошибаюсь, мы как то уже гоняли тесты буустовских регулярок. Порядок скорости был типа миллион в секунду. Э... во первых я про буст. Я вообще в принципе ворчу. На юзкейсы. Во вторых мне как человеку дотошному и занудному совершенно непонятна фраза "миллион в секунду". Миллион попугаев или слонёнков. За кадром остаётся сложность самой регулярки. А это - ни хер собачий. Это конечный автомат мать его. И отклик от него (наверное) зависит от того как выглядит сам expression. И наверное отклик зависит от длинны строки которую мы анализируем. Поэтому фраза 1000000 в сек. это как-то ниочём. Ну тоесть для меня она неинформативна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2015, 11:30 |
|
||
|
С++11 regex
|
|||
|---|---|---|---|
|
#18+
maytonПоэтому фраза 1000000 в сек. это как-то ниочём. Ну тоесть для меня она неинформативна. Гггг. Это написал человек, который в описании проблемы указал только: maytonТолько работает он медленно. 1000000 - это хоть какая-то конкретика, верхний предел скорости. А вот что такое "медленно" мы так и не узнали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2015, 14:36 |
|
||
|
С++11 regex
|
|||
|---|---|---|---|
|
#18+
Пока тут вообще никакой конкретики ;) Марк об этом подробно написал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2015, 14:42 |
|
||
|
С++11 regex
|
|||
|---|---|---|---|
|
#18+
10^6 может быть, но не значит что это максимум, среднее или что-то ещё. Такое число может быть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2015, 14:44 |
|
||
|
С++11 regex
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky1000000 - это хоть какая-то конкретика, верхний предел скорости. А вот что такое "медленно" мы так и не узнали. Есть разные подходы к оценке производительности. Мой базируется на вычислении НАПРАВЛЕНИЙ куда можно улучшать. В данном случае как решили коллеги (совершенно верно) в устранении ненужных или покрывающих друг друга предикатов. Выше мне сказали дескыть - авот в бусте - 1000000 чего-то там такого. И что? И где? И как? И какой был best practices? Просто я не понимаю какую инфу я из этого должен взять? Что мне надо юзать буст? Извините меня дорогие коллеги. Ну также нельзя ну ё-моё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2015, 14:58 |
|
||
|
С++11 regex
|
|||
|---|---|---|---|
|
#18+
mayton, Я пример привел, что сам по себе регекс быстрый и будет узким местом довольно в редких случаях приложений. Хочешь подробности - делай конкретный юзкейс и тестируй. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2015, 19:03 |
|
||
|
С++11 regex
|
|||
|---|---|---|---|
|
#18+
maytonAnatoly Moskovsky1000000 - это хоть какая-то конкретика, верхний предел скорости. А вот что такое "медленно" мы так и не узнали. Есть разные подходы к оценке производительности. Мой базируется на вычислении НАПРАВЛЕНИЙ куда можно улучшать. В данном случае как решили коллеги (совершенно верно) в устранении ненужных или покрывающих друг друга предикатов. Выше мне сказали дескыть - авот в бусте - 1000000 чего-то там такого. И что? И где? И как? И какой был best practices? Просто я не понимаю какую инфу я из этого должен взять? Что мне надо юзать буст? Извините меня дорогие коллеги. Ну также нельзя ну ё-моё. Не согласен. Реализация на Си быстрее, как понимаю, задача у тебя устоявшаяся и требующая ускорения, т.е. переписав ее на С ты однозначно получишь ускорение, а буст или не буст зависит только от задачи. Оптимизировать излишние проверки и в С не помешает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2015, 20:26 |
|
||
|
С++11 regex
|
|||
|---|---|---|---|
|
#18+
Dima TНе согласен. Реализация на Си быстрее, как понимаю, задача у тебя устоявшаяся и требующая ускорения, т.е. переписав ее на С ты однозначно получишь ускорение, а буст или не буст зависит только от задачи. Оптимизировать излишние проверки и в С не помешает. Полностью исключено. Заказчик будет против. +Там наши собственные требования по интеграции. Java + несколько слоёв кодогенерации. Аспекты и кросскомпилляторы. Подключение JNI сделает задачу непрозрачной для тестирования на Linux да и вообще добавляет огромное количество кейсов исследования. Вобщем отпадает. По поводу бенчмарков - это тема. Я буду писать модульные тесты когда переколбашу модуль поиска. Тогда у меня будут цифры. Сколько там поисков в секунду. БД заменю на Mocks чтобы убрать случайные влияния и можно будет видеть чистый алгоритм с регулярками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2015, 21:20 |
|
||
|
С++11 regex
|
|||
|---|---|---|---|
|
#18+
maytonнесколько слоёв кодогенерации Начните отсюда оптимизировать, потом уже микросекундами займетесь )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2015, 22:08 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39076019&tid=2018800]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 167ms |

| 0 / 0 |
