170 похожих чатов

Забавная херня. Есть код который парсит кучу xml-ек и выдёргивает

из неё нужные данные. Некоторые из них правились странным образом, и в них встречаются значения с табами, переносами строк, и прочим забавным хламом, поэтому значения я чищу регуляркой, воот такой: std::regex_replace(ValueStr, std::regex("^[ \t\r\n]+|[ \t\r\n]+$|( )[ \t\r\n]+"), "$1"); (не уверен что она правильная). Собтвенно, проблема: Код писался на одном компе. Там он с имеющимся набором данных справился весьма быстро (Windows, msvc19-я). Далее от нефиг делать я его скопилил на телефоне в термуксе (clang-13) и заставил переварить тот же набор данных. Тоже справился весьма быстро. Теперь я решил допилить этот код дома, собрал его на домашнем компе (GCC 11.1), и чёт он ой как медленно ворочается. Гугл посоветовал valgrind --tool=callgrind, сделал, ждём результата. (и чёт мне кажется надо бы процесс прервать и убрать парсинг всех xml-ок. одной пока хватит

Upd: просто для теста заменил этот регехп на простое присваивание, и дело пошло заметно веселее. WTF?
UPD2. Пересобрал на компе с clang13. Быстрее чем с gcc, но медленнее чем на телефоне. Странности
(И да, я точно в релизе собираюсь)

3 ответов

7 просмотров

Стандартные регулярки не надо использовать, если стоит вопрос о скорости

🐈- Автор вопроса
Sergey Skvortsov
Стандартные регулярки не надо использовать, если с...

а на кой леший их тогда в стандарт втащили?

Похожие вопросы

Обсуждают сегодня

Сообщение* в закодированном виде. То есть, просто сделать sendMessage?text=Привет бла-бла! не получится, надо в HEX переводить, и добавлять процент, типа такого: sendMessage?t...
КТ315
21
А случайно нет ли в паскале штатной возможности передать указатель и количество туда где array of в качестве аргумента?
zamtmn
25
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
58
Только такой if ($modx->event->name == 'OnBeforeCartItemAdding') { $meta = $params['item']['meta']; $lang = $modx->getConfig('_lang'); // проверяем, задана ли опция i...
Multi Web
1
Всем привет. Испытываю проблемы в работе БД, а именно огромного роста логов, такого характера: 024-05-16 18:39:07 +05 sentry sentry [unknown] 1050169 7-1 app-sentry01.corp.ru>...
Alexey
2
Ну раз я пока тут, задам пару глупых вопросов. Зачем писать на ассемблере если компилятор довольно умный, а ассемблер много времени занимает? В каких прикладных задачах сейчас...
Максим Рябцев
20
Хм. А телеграм апи работают через HTTP?
The Bird of Hermes
14
Почему Telegram пишет, что объект media не найден, хотя на самом деле я его передаю? Делаю на urllib, без зависимостей, так надо. Вызываю метод sendMediaGroup с таким JSON: ...
Alexey S
1
Если подытожить: По мнению Розыча и Хемуля и др. - предпочтительно по возможности объявлять в секции имплементации потому-что: 1) Выше скорость компиляции 2) Не замусоривается...
notme
7
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Карта сайта