@ProCxx

Страница 738 из 2477
Michael
02.04.2017
23:09:59
этот хак я выкину к чертям

но сабстр там не нужен

Andrei
02.04.2017
23:10:17
Ради бога, напиши без сабстра, но я не вижу с ним проблемы.

Я еще вижу проблему, что бывают ext у файлов больше чем 3 символа.

Google
Matway
02.04.2017
23:10:33
Ради бога, напиши без сабстра, но я не вижу с ним проблемы.
Я вижу. Действительно, есть же http://en.cppreference.com/w/cpp/string/basic_string/compare

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
Это что, FAT16?
это файловая система конкретного прилжения

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
Кроме процессора.
на самом деле я согласен с андреем, лучше мейнтейнебл код чем сомнительныйе микрооптимизации

тем более что я знаю где боттлнек в моем приложении и он вообще не там, он в регексах.

Michael
02.04.2017
23:16:20
вчера я легим изменениям ускорил его в 6 раз

а еще есть место судя по профайлеру где могу ускорить вдвое

чот регексы медленные

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
»> filename.compare(filename.length() - 4, 4, ext); Вот ЭТО - ни то, ни сё. И не быстро, и не "мейнтейнебл".
Мне вот тот каст в uint64_t не по душе. То есть изящно, конечно, все дела, но dirty

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
Когда ты держишь указатель сразу на объект внутри uniq-а то для обращения к объекту только один deref
если ты идешь по вектору unique_ptr то ты ловишь уже два а не один, + потенциальный рандом

Michael
02.04.2017
23:21:01
он пробегается по всего-то 8000 файловых имен

но это самая тяжелая операция в программе

в идеале стоит заменить его на простой парсер...

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

Я уже сказал об этом.

Michael
02.04.2017
23:23:10
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
жопу в кресло и переписать

?

Google
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 - это поинтер

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

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

Страница 738 из 2477