@ProCxx

Страница 173 из 2477
arisu
15.05.2016
08:52:06
Кстати говоря

Andrei
15.05.2016
08:55:25
я ж говорю, никто не мешает излишки памяти вернуть. Есть shrink_to_fit

Square
15.05.2016
09:43:15
У меня тут это... Тема для обсуждения есть, очень фундаментальная. Начнём с простого. Поиск needle в haystack... Бойер Мур самый толковый буит?

А когда нужно перебрать несколько тысяч needle'ов? КА?

Google
Square
15.05.2016
09:44:31
А когда needle по маске?

Короче ищу примеры реализаций толковых движков для перебора почти-регексов

Square
15.05.2016
11:03:50
если мне нужнл 10 тыщ сигнатур перебрать?

Alex Фэils?︙
15.05.2016
11:04:32
бинарный поиск?

сбалансированные деревья поиска?

Square
15.05.2016
11:05:21
а как лепят поиск по маске

вообще слышал ли кто про поиск регексов за константное время?

Google
Square
15.05.2016
11:07:01
ну хотя бы какой то упрощенный, без возвратов и тп

Alex Фэils?︙
15.05.2016
11:07:15
в akelpad клевая имплементация

Square
15.05.2016
11:07:32
то есть когда скорость поиска зависит как в обычном КА, только от длины haystack

Alex Фэils?︙
15.05.2016
11:08:09
она токенизирует регэкспы и исчет по токенам

Square
15.05.2016
11:10:54
хм.

Alex Фэils?︙
15.05.2016
11:12:50
.h-only logic

там пример есть в конце, как юзать

Square
15.05.2016
11:29:31
Спасибо. смотрю

Я вообще думал о гибриде автомата и бойера мура, чтобы высота дерева была ограничена к примеру, 128 или типа того.

Надо попробовать попилить

Толковых экспериментов чо то не особо много удалось найти...

Anatoly
15.05.2016
11:45:14
Если же прходится пушбечит, свести это к минимуму
Гыыы ык! http://users.livejournal.com/_winnie/463176.html

Alex Фэils?︙
15.05.2016
11:46:55
лол

Andrei
15.05.2016
11:46:55
и?

Alex Фэils?︙
15.05.2016
11:47:08
соль в том, что push_back сам reserve'ит

обычно с коэф. от 1.5 до 2

Andrei
15.05.2016
11:47:17
Почему неявно квадратичный, когда явно квадратичный.

Alex Фэils?︙
15.05.2016
11:47:24
в зависимости от имплементации

и поэтому у нас получилось дно

Google
Alex Фэils?︙
15.05.2016
11:47:40
каждый шаг мы расширяем массив на 10

апотом пинаем

а если ресерв убрать, то мы его будем расширять по мере надобности в 1,5~2 раза

arisu
15.05.2016
11:48:09
Где-то на хабре было исследование на тему оптимального резерва

Alex Фэils?︙
15.05.2016
11:48:14
ага

Andrei
15.05.2016
11:48:18
Что, опять?

Alex Фэils?︙
15.05.2016
11:48:21
я тоже помню

Andrei
15.05.2016
11:48:26
нет никакого оптимального резерва.

arisu
15.05.2016
11:48:27
Да не, давно было

Andrei
15.05.2016
11:48:27
лол.

Anatoly
15.05.2016
11:49:06
Почему неявно квадратичный, когда явно квадратичный.
Потому что невооружённым глазом видно с трудом. "Мы ж тут соптимизировали, кагжэтаг!"

Andrei
15.05.2016
11:49:26
Эм...

Alex Фэils?︙
15.05.2016
11:49:30
да лошпеды, не знающие апи

так соптимизируют ?

Andrei
15.05.2016
11:49:56
Резёрв в даном случае всегда будет вызывать перемещение.

это сумма ряда 1 +2 +3 +..+n

что равно 1/2 *n*n+1

То есть квадратичная асимптотика

Это явно и очевидно квадратичный код.

Anatoly
15.05.2016
11:52:20
Я б в коде вызвал 10 раз пушбек, так круче: "нам понадобилось 10 - мы 10 и добавили! Никакого оверхеда!"

Google
Anatoly
15.05.2016
11:53:26
В http://users.livejournal.com/_winnie/463176.html?thread=6042184#t6042184 пример лучше

Как раз про "свести пушбек к минимуму".

Andrei
15.05.2016
11:55:25
Не, не как раз.

Я говорил про пушбек сверх резерва.

Просто так код никто в своём уме не пишет.

Обычно мы знаем сколько нам надо элементов в массиве.

Всегда сначала делается reserve

Admin
ERROR: S client not available

Andrei
15.05.2016
11:56:51
если нет, то опять же константа 2 это нормально

и экспериментально ок

потому что если даже предположить, что мы кладём в вектор чары, через 20 реаллокаций мы уже будем занимать мегабайт

через 30 гигабайт

часто у вас гигабайтные строки?

Переаллоцируются еще при этом.

Так что все эти рассказы про фрагментацию памяти это очень специфичный случай.

и не нужно ни золотое сечение, ни полтора,

2 это норм

в противном случае никто не мешает вызывать самостоятельно reserve с нужными величинами

Для этого не надо даже код вектора менять

без строгой надобности это всё пустой совершенно спор.

Google
Andrei
15.05.2016
12:00:52
А если хоть где-то перформанс упирается в то, что вы в цикле херачите пушбек в заранее не аллоцированный вектор — это повод задуматься о дизайне вашей программы

Anatoly
15.05.2016
12:02:16
Те же яйца вот ещё http://sim0nsays.livejournal.com/38116.html

Просто так код никто в своём уме не пишет.
Ойвэй. Громкое заявление, я б сказал. Баги, наверное, тоже никто в трезвом уме не оставляет?

Обычно мы знаем сколько нам надо элементов в массиве.
И тут хаха. На то оно и вектор, что не знаем. Есои б знали - тупо б аллоцировали массив.

Andrei
15.05.2016
12:04:42
нет, вектор не на то.

Вектор на то, чтобы мы безопасно использовали его как массив.

Anatoly
15.05.2016
12:05:09
Andrei
15.05.2016
12:05:15
с типобезопасностью, мувами, и сборкой мусора

Anatoly
15.05.2016
12:05:27
через 30 гигабайт
Полгиговые данные в строке.

2 это норм
Чувак, это ж совсем другая тема.

Andrei
15.05.2016
12:06:19
через 30 будет 2^31

значит гигабайт минимум

не суть, всё равно такими данными никто не ворочает в векторе

Andrei
15.05.2016
12:07:29
ЛИНЕЕН?

что?

пушбек это амортизированная константа

ты о чем?

Aldar
15.05.2016
12:08:13
Не помните, какие требования вектор накладывает на контейнер, насколько я помню контейнер должен иметь не бросающий исключения конструктор перемещения или конструктор копирования

Anatoly
15.05.2016
12:08:17

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