Pavel
просто он долгий
это прекрасно
Ignat
(это не руководство к действию, а совет посмотреть нестандартные реализации)
Pavel
а с++ не компаил тайм? (не стащщили из буста?)
Egor
А ответы у питона и плюсов одинаковые?
Egor
Можете ещё код на питоне показать?
Tommy Shelby
питон вообще все делает за три секунды с 1кк строк по жтой же регулярке, и причем я ему загоняю инфу построчно
Tommy Shelby
если построчно это делать в ++ то вообще хана
Tommy Shelby
может и пол часа выполнять
Egor
И код — ..?
Tommy Shelby
def get_links(file): lists = [] data = open(file, 'r').read() pattern = '(?:[\w\.]+)\.(?:[a-z]{2,6}\.?)' result = re.findall(pattern, data) for url in list(set(result)): lists.append("https://" + url) lists.append("http://" + url) print(f'Всего {len(lists)} элементов') return lists
Tommy Shelby
вот так питон делает на лету
Tommy Shelby
а с++ подыхает на регулярке в чем прикол неопнятно
RattenKong 🦧🐀🦍️
в том, что ты не понимаешь, что делаешь
Tommy Shelby
я создают массив в питоне вектор в ++ читаю файл прогоняю через регулярку и добавляю в вектор а в питоне в массив
Tommy Shelby
все одинакого
Egor
Предлагаю переместиться в #supapro
Tommy Shelby
ладно, спс
Ignat
Зачем писать «#supapro», если можно «@supapro.cxx»?
Egor
Не помню, как пишется полное название чата
Ignat
Даже нет ведь, просто @supapro
Alexander "SonnySlave"
Зачем писать «#supapro», если можно «@supapro.cxx»?
раньше при такой записи появлялся бот с красивой табличкой. Теперь не появляется)
Berkus
std::regex выкинь, попробуй pcrepp какой-нибудь напрямую
Alexander "SonnySlave"
кстати как вариант попробовать заюзать libc++ - мб у них под капотом что-то более шустрое
Ignat
очевидно слишком сложный совет
Alexander "SonnySlave"
очевидно слишком сложный совет
не могу не согласиться в данном случае
🐙 Antony
Egor
А можно код посмотреть на с++ ?
Например: https://ideone.com/63tsbN
Egor
Реальный юзкейс: найти URL в файле (эта регулярка - префикс более сложной). Вероятно, regex_search в гцц и вижаке работает за квадрат в лучшем случае. В clang, как говорят в соседнем чате, ситуация сильно лучше.
🐙 Antony
Например: https://ideone.com/63tsbN
С -stdlib=libc++ не падает
🐙 Antony
Похоже на багу
Tommy Shelby
Подвожу итог с холиваром по длительной работе регулярке, запустил тот же код на Маке в Силионе с компилом Сланг - результат в раз 30 лучше что меня полностью удовлетворяет
🐙 Antony
У GCC похоже вот на эту багу: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79539 Но я на всякий пожарный заведу отдельный тикет
Tommy Shelby
Быстрее питона пока не встречал обработку регулярок но про руби тоже хорошо отзываются, но для виндового приложения clang вполне справляется и со стандартной либой regex
Olesya
попробуйте re2, он быстрее pcre https://github.com/google/re2
Vsevolod
Hyperscan быстрее всего
Vsevolod
А c++ regexp - какаха
Vsevolod
В libc++ и libstdc++, по крайней мере
Olesya
Hyperscan быстрее всего
не пользовалась
Olesya
у re2 ещё api удобное + там можно больше регэксп запихнуть, чем в pcre
Ignat
В libc++ и libstdc++, по крайней мере
вроде ведь пришли к выводу, что в libc++ ничего
Anonymous
Попробовал Qt Creator, понравился, спасибо за совет
Anonymous
Там и MSVC Build Tools 2013-2017 в комплекте идут, btw
Igor
Попробовал Qt Creator, понравился, спасибо за совет
Активируй clangcodemodel в плагинах. Полезная приблуда на мой взгляд
Anonymous
И 64-битный MinGW можно накатить, правда с бубном чуть поплясать придется
Alexander "SonnySlave"
пацаны говорят лагает
пацаны не врут)
Igor
Раньше, может, лагало. Сейчас работает незаметно. От железа еще зависит, конечно
Alexander "SonnySlave"
хм, надо перепроверить что ли. Раньше мой i7 довольно сильно проседал
Igor
Мой рабочий даже не замечает что его что-то нагружает)
Egor
Завёл: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83754
Вангую Won't Fix с комментарием "это stack overflow из-за слишком большого входа, что ожидаемо при нашей реализации, а стандарт не требует работы на длинных строках, вы не должны использовать <regex> на длинных строках, котому что будет stack overflow" :(
🐙 Antony
Ставлю на то, что починят вместе с полиномиальным поиском
Anonymous
Pcre тормозной аж зубы сводит. Используй PIRE или ragel
🦥Alex Fails
а отметинолавочки вообще есть по этим либам с регэкспам?
🦥Alex Fails
надо ему в mailing list отправить
Anonymous
слышал бы тебя Ларри
Думаешь он никогда такого не слышал?
Berkus
Думаешь он никогда такого не слышал?
думаю ему вообще насрать
Burado
В спп есть какая-либо встроенная асинхронность?
Burado
Спасибо.
Aleksey
Ребят, если есть структура с несколькими полями и есть класс с точно такими же полями, я правильно понимаю, что единственное отличие между ними в том, что структура располагается в памяти строго целиком, а поля класса могут оказаться в далеких друг от друга областях памяти?
Ioann_
Так, ну я это - просто мимо проходил, а вот это оставлю здесь, может комментариев кто даст каких: https://godbolt.org/g/qGQWJq
Aleksey
класс в памяти тоже всегда располагается целиком?
Aleksey
Ничем они не отличаются, а теперь колись, кто в тебя влил это откровение?
Программировал на шарпе, в шарпе вроде есть такое отличие между ними.
Alexander "SonnySlave"
Программировал на шарпе, в шарпе вроде есть такое отличие между ними.
ну как бы в шарпе и отличия между классами и структурами бОльшие, чем в крестах)
Aleksey
Тогда получается, если мне вдруг необходимо расположить поля в памяти последовательно в определенных адресах, я могу смело использовать класс?
Alexander "SonnySlave"
Так-так-так, что у нас говорит Стандарт про memory layout ? 😊