
Michael
02.04.2017
23:09:59
этот хак я выкину к чертям
но сабстр там не нужен

Andrei
02.04.2017
23:10:17
Ради бога, напиши без сабстра, но я не вижу с ним проблемы.
Я еще вижу проблему, что бывают ext у файлов больше чем 3 символа.

Google

Matway
02.04.2017
23:10:33

Michael
02.04.2017
23:10:50
filename.compare(filename.length() - 4, 4, ext);

Andrei
02.04.2017
23:10:51
А, блин, про этот compare речь.

Michael
02.04.2017
23:10:52
вот и все

Andrei
02.04.2017
23:10:56
Да, с ним лучше конечно.
Я подумал про wcscmp

Michael
02.04.2017
23:11:12
точка три буквы

Matway
02.04.2017
23:11:37

Andrei
02.04.2017
23:11:37
Бывает и две и одна и .htaccess

Michael
02.04.2017
23:11:48

Andrei
02.04.2017
23:11:48
Линуксовое ядро какое-то

Michael
02.04.2017
23:11:50
в ней не бывает

Google

Andrei
02.04.2017
23:12:13
судя по mrb_dump_irep

Michael
02.04.2017
23:13:03
ты меня так выругал что я убрал это дерьмо и заменил на компейр
все :)
все доволны

Andrei
02.04.2017
23:13:17
Sorry!

Michael
02.04.2017
23:13:22
за что?
все по делу

Matway
02.04.2017
23:13:23

Michael
02.04.2017
23:13:27
ну да
но я думаю это крохоборство
тут андрей прав
лучше мейнтейнебл код

Group Butler [beta]
02.04.2017
23:13:39
Michael kicked for flood!

Alex Фэils?︙
02.04.2017
23:14:02
Блядь??

Andrei
02.04.2017
23:14:04
Какой злой бот
@micktu

Sergey❄️
02.04.2017
23:14:44

Michael
02.04.2017
23:14:54
фига я удивился

Andrei
02.04.2017
23:14:58
Не ты один :D

Google

Michael
02.04.2017
23:15:13
на самом деел разумное замечание, буду писать полновесные предложения.

Alex Фэils?︙
02.04.2017
23:15:20

Matway
02.04.2017
23:15:46
лучше мейнтейнебл код
»> filename.compare(filename.length() - 4, 4, ext);
Вот ЭТО - ни то, ни сё. И не быстро, и не "мейнтейнебл".

Michael
02.04.2017
23:15:55
Кроме процессора.
на самом деле я согласен с андреем, лучше мейнтейнебл код чем сомнительныйе микрооптимизации
тем более что я знаю где боттлнек в моем приложении и он вообще не там, он в регексах.

Andrei
02.04.2017
23:16:13

Michael
02.04.2017
23:16:20
вчера я легим изменениям ускорил его в 6 раз
а еще есть место судя по профайлеру где могу ускорить вдвое
чот регексы медленные

Andrei
02.04.2017
23:16:43

Michael
02.04.2017
23:16:45
угу

Andrei
02.04.2017
23:17:03
Они кажется не компилируются в автомат в стандартной библиотеке, поэтому так.

Michael
02.04.2017
23:17:29
реально, то 80% проц. времени жрал регекс, теперь 50% два регекса суммарно
я просто прохождусь по нескольким мегбайтам текста ими...
но все равно достаочно быстро работает, так что можно не паритсья

Andrei
02.04.2017
23:18:12

Michael
02.04.2017
23:18:25
кстати как регекс ускорился в 6 раз

Matway
02.04.2017
23:18:27
Матвей, что бы ты предложил?
Исходя из требований:
Надо, быстро, надо рилтайм, ай-ай-ай, время,время - тогда хак с алиасингом, но нормально обёрнутый, чтобы минимум самострела
Если это веб-странички грузить - то compare, но со всеми проверками и без магической константы.
А если от этого жизнь астронавта будет зависеть - ну, тогда и разговор был бы другой :)

Michael
02.04.2017
23:18:33
было \r?\n
стало (\r\n)|\n

Google

Michael
02.04.2017
23:18:50
лукахед что-то очень дорогой оказался
оставшийся второй жрун процессора выглядит так
\\\w+?(_([a-zA-Z]{2}))?\.dat

Gregory
02.04.2017
23:20:56

Michael
02.04.2017
23:21:01
он пробегается по всего-то 8000 файловых имен
но это самая тяжелая операция в программе
в идеале стоит заменить его на простой парсер...

Andrei
02.04.2017
23:21:46
Если ты идёшь по вектору поинтеров у тебя 1 derference
Я уже сказал об этом.

Michael
02.04.2017
23:23:10

Andrei
02.04.2017
23:23:12

Michael
02.04.2017
23:23:12
на ПЕГ
мне он все равно пригодится потому что ум еня свой формат есть который я сейчас паршу ОЧЕНЬ наивно

Alex Фэils?︙
02.04.2017
23:24:07
Раз уж тут упомянули парсеры, подскажите, как мне эту сишную телегу из бота для телеги переписать на модерн с++ с нормальным перфомансом

Michael
02.04.2017
23:24:15
думаю можно разогнать с 20 секунд выполнения до 4-5 секунд

Alex Фэils?︙
02.04.2017
23:24:17

Michael
02.04.2017
23:24:43
жопу в кресло и переписать
?

Andrei
02.04.2017
23:24:51

Google

Alex Фэils?︙
02.04.2017
23:24:58

Michael
02.04.2017
23:25:23
да как по мне код выше выглядит как нормальный быстрый парсер
просто некрасивый
потоум чтоо велосипед
поэтому же я гне хочу городить велосипеды вместо регексов

Alex Фэils?︙
02.04.2017
23:26:16
Тут есть еще один очень неприятный нюанс - в андроиде ндк регэкспы сломаны

Andrei
02.04.2017
23:26:36
Мобилкопроблемы :(

Gregory
02.04.2017
23:31:05
Если ты идёшь по вектору поинтеров у тебя 1 derference
изначальный посыл человека по поводу задачи я понял как: хочу линейно расположенные элементы в векторе, буду по ним часто бегать. А еще хочу извне откуда то на них ссылаться (но не бегать по ним часто).
В таком случае более проищводительно будет иметь просто вектор элементов а не вектор ссылок на онные, а ссылаться уже нестандартно - оффсетом.
(в всю полноты задачи не вникал, т.к. нет времени, мб оно и ненадо на самом деле)

Andrei
02.04.2017
23:31:34
А, эту проблему мы уже решили, да.
Просто заранее посчитаем количество элементов и переезжать не надо.

Gregory
02.04.2017
23:31:55
я просто хотел понять - мб я в чем то не прав
уже для себя

Michael
02.04.2017
23:34:13
щас будет гениальный вопрос, господа

Andrei
02.04.2017
23:34:14
Речь идет о том, когда элементов неизвестное количество. То как на них ссылаться? Варианта по сути два, вектор юник_птров и ссылаться прям на объекты, или вектор значений, а для ссылки использовать сслылку на вектор и оффсет. И плюсы\минусы таких решений в зависимости от задачи.

Michael
02.04.2017
23:34:17
итак: как передать реф на this?

Andrei
02.04.2017
23:34:26
*this

Michael
02.04.2017
23:34:49
*this
черт, справедливо. какой же я пока что тугой.

Andrei
02.04.2017
23:34:55
сам this - это поинтер

Gregory
02.04.2017
23:35:05

Michael
02.04.2017
23:35:05
да, я видел это и не догадался. очень плох

Andrei
02.04.2017
23:35:08
разыменовал — получил объект собсна