
Anatoly
14.05.2016
23:24:09
И где эта твоя константа в той формуле, что ты написал?

Andrey
14.05.2016
23:24:09

Anatoly
14.05.2016
23:24:16
И?

Andrey
14.05.2016
23:24:23

Google

Andrey
14.05.2016
23:24:26
Реши уравнение.

Anatoly
14.05.2016
23:24:29
Бля.
1. Как говорится, "каков физический смысл сего уравнения?"

Сергей
14.05.2016
23:25:19
я вообще не пойму что за попугаев вы считаете
в чем проблема выделять x2 память?

Anatoly
14.05.2016
23:25:31
2. Понятие "оптимум" знакомо?

Square
14.05.2016
23:26:01
О точно, а когда успели дотнет грохнуть?

Anatoly
14.05.2016
23:26:16

Andrey
14.05.2016
23:26:32
Ой, неправильно. x^3 = x + 1. Вот это правильно.

Square
14.05.2016
23:26:38

Andrey
14.05.2016
23:27:20
Слева находится количество памяти, которое нам надо выделить. А справа количество памяти, которое мы задействовали на 1 и 2 шагах.
Чтобы не было фрагментации памяти.

Google

Anatoly
14.05.2016
23:28:14

Andrey
14.05.2016
23:28:23
Блин, 1.5 не подходит. Нужный порог - 1.3247

Anatoly
14.05.2016
23:29:03

Andrey
14.05.2016
23:29:23

Anatoly
14.05.2016
23:29:55

Andrey
14.05.2016
23:30:33

Anatoly
14.05.2016
23:30:38

Andrey
14.05.2016
23:32:01
Почему x^3, а не x^7, например?
Потому что на четвертом шаге нам понадобится x^3 памяти. Данные нужно разместить в памяти, которая выделяется на первом и втором шагах.
Третий шаг не трогаем, так как там хранятся данные.

Anatoly
14.05.2016
23:32:34
С чегойта?
Между 3 и 4 шагом у нас в проге ещё навыделялось всякого.
Но уже хоть видно свет в конце тоннеля.

Andrey
14.05.2016
23:33:38
Или память дешева и на неё пофиг?

Anatoly
14.05.2016
23:35:00
Но тогда нам подходит любая константа между 1 и 2

Andrey
14.05.2016
23:35:15
x ~ 1.3247

Google

Andrey
14.05.2016
23:35:49
Между 1 и 1.3247

Anatoly
14.05.2016
23:36:00

Andrey
14.05.2016
23:36:41

Anatoly
14.05.2016
23:37:00
И раз пошли такие танцы, и ты хочешь реюз на 3 шаге, то уравнение должно быть 1 + x + x^2 = x^3

Сергей
14.05.2016
23:37:16
как можно надеяться на реюз?
когда мы живем в куче

Andrey
14.05.2016
23:37:32
Так как после выделения памяти нужно ещё данные хранить где-то. Поэтому память из второго шага перетирать нельзя.

Anatoly
14.05.2016
23:39:39

Andrey
14.05.2016
23:39:55

Anatoly
14.05.2016
23:41:27

Andrey
14.05.2016
23:42:15

Anatoly
14.05.2016
23:51:52
С другой стороны, что цланг, что гцц тупо множат на 2. И ещё встречаются высказывания типа
```Typical growth factors in implementations are 2 or 1.5, though any number strictly greater than 1 will do.```
Похоже, @AndreyVassilyev знает про хип что-то такое, чего не знают разрабы компиляторов. Или наоборот.

Andrey
14.05.2016
23:55:03
В чём ошибка то, дружище мой?
Или будем просто давить авторитетом других людей?)

Anatoly
14.05.2016
23:56:18
Канешна! Ибо какая ещё польза с того авторитета, если им нельзя давить? :)

Andrey
14.05.2016
23:56:55

Google

Anatoly
14.05.2016
23:57:40
А зачем мой авторитет? Своё мнение "константа пофиг" я и без него высказал.
Хотите - верьте, хотите - нет.

Andrey
14.05.2016
23:58:52
Ну? а я конкретно показал какая константа наиболее выгодна. Путь и в ущерб производительности.
http://www.gahcep.com/cpp-internals-stl-vector-part-1/
Вот здесь высказаны мои рассуждения.
Где-то в середине страницы. По картинкам увдите.

Anatoly
15.05.2016
00:13:40
Вот про константы http://stackoverflow.com/questions/6550509/amortized-analysis-of-stdvector-insertion

Andrei
15.05.2016
07:37:24
лол
пустой спор был какой-то вообще

Admin
ERROR: S client not available

Andrei
15.05.2016
07:48:18
на практике всё не так.

Square
15.05.2016
07:56:13
Факт!
Оптимизация ради оптимизации

Andrei
15.05.2016
07:58:43
Да даже не в этом дело.
Ситуация, когда в вектор надо в цикле что-то напихивать — очень редкая.
Практически н встречающаяся.

Square
15.05.2016
07:59:20
А. Эт тоже
Тут просто так много сюжетных линий в их споре )

Andrei
15.05.2016
07:59:54
С вектором надо работать так, что сначала делаешь ресайз или резёрв до нужного размера, потом работаешь
Если же прходится пушбечит, свести это к минимуму

Google

Andrei
15.05.2016
08:00:18
и вызвать shrink_to_fit

Square
15.05.2016
08:00:24
Я вообще стараюсь всегда избегать реаллоков

Andrei
15.05.2016
08:00:39
Да, вот именно, и обычно это сделать несложно.

Square
15.05.2016
08:00:49
В принципе выделить буфер и в нем работать
Ну у нас специфика такая в работе
Максимум перфоманса
И вообще я сторонник юзать qt на замену stl
Если б ещё свой аллокатор можно в шаблон отдавать как в stl - вообще б цены не было

Andrei
15.05.2016
08:06:09
А я не сторонник.
:D
Но опустим это.

Square
15.05.2016
08:12:10
Тут вообще кто нить юзает qt как замену стандартной библиотеке?

arisu
15.05.2016
08:12:39
Лол зачем
Таскать за собой гигабайт зависимостей нравится?

Square
15.05.2016
08:13:06
Лол потомушто он охуенен же
Ну и речь не про мелкие проекты :/
У нас так то крупная ids
И кстати от их сикуэль драйвера я в восторге...
Для оракула самостоятельно только собирать надо.

Aldar
15.05.2016
08:51:17
да, у вектора есть замечательный резерв. Если знаешь сколько тебе места надо заранее, а если не знаешь, то в чём проблема выделять 2х раза?

arisu
15.05.2016
08:52:00
Это уже получается пул