
Denis
07.05.2018
10:48:58
всё это в памяти лежит потому что sync оно не делает

Ievgenii
07.05.2018
10:49:35
Что значит не делает?
Делает
Это с ожиданием синка на диск

Google

Ievgenii
07.05.2018
10:50:06
У меня памяти столько не хватило бы)
Просело немного
Уже 60-90

Denis
07.05.2018
11:03:27
очень странныевещи делаешь

Pavel
07.05.2018
11:11:23
А вот скажите мне
У меня есть структурка 10-15 байт. Мне надо под такие структурки аллоцировать память. Я планирую сделать freelist. Что будет лучше - аллоцировать память большими сплошными кусками, и потом делать realloc, или просто аллоцировать каждый раз кусочек размером со структуру и хранить указатели?

Dark
07.05.2018
11:15:01
Ну тут зависит от задач, думаю

Denis
07.05.2018
11:15:25

Pavel
07.05.2018
11:15:48
будет не больше 100_000 с вероятностью 99% )

Dark
07.05.2018
11:15:48
Если тебе заранее известно, что ты будешь аллоцировать разом >15 структур, то большими кусками

Pavel
07.05.2018
11:16:11
А скорее всего будет в среднем 20_000 или даже меньше

Pavel
07.05.2018
11:16:38
А как часто они будут добавляться/удаляться?

Pavel
07.05.2018
11:17:06
Ну если это freelist то они добавляются сначала до 20к а потом переиспользуются.

Google

Pavel
07.05.2018
11:17:19
Но если выделять память сплошным куском то freelist не нужен особо
А нет, все таки нужен походу
То есть эти структуры всегда добавляются и никогда не удаляются, видимо.

Dark
07.05.2018
11:18:29
Тогда большими кусками, логично?
уменьшать же не надо, я так понял

Pavel
07.05.2018
11:19:08
Да как-то не вижу логичности. Может так быть что мы выделим большой кусок а он будет на 90% пустой все время
Хотя я щас вычислил, походу я из-за спичек спорю. 20000 структур по 15 байт это 300кб памяти примерно ))

Stanislav
07.05.2018
11:20:29
полтора мегабайта жалко?)

Pavel
07.05.2018
11:20:48

Stanislav
07.05.2018
11:20:50
100к по 15 байт (если выравнивание по 1 байту)

Pavel
07.05.2018
11:22:29
А если размер структуры будет сильно больше (1кбайт) то уже есть смысл заюзать freelist ?

Pavel
07.05.2018
11:27:14
freelist Это вот это вот? https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BE%D1%81%D0%B2%D0%BE%D0%B1%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F

Pavel
07.05.2018
11:28:01
Ага, хитрая удобная штуковина
Позволяет нааллоцировать много много кусочков памяти и почти мгновенно их использовать и отпускать

Pavel
07.05.2018
11:28:46
Я знаю, я его сам придумывал)
подходит когда много, часто и примерно одинаковых

Pavel
07.05.2018
11:29:39
Ну вот как раз мой случай
Но в чем суть моего вопроса-то - я как-то не вижу разницы между кучей фрагментированных кусочков, связанных в линейный список, и одним большим куском.
При этом freelist делает больше аллокаций, но зато более точно расходует память, не выделяя лишнего.
И может работать даже когда память фрагментирована и нет места для одного большого куска

Google

Denis
07.05.2018
11:31:27

Pavel
07.05.2018
11:31:42
суть в том, что выделяется один кусок, в рамках которого выделяются/освобождаются мелкие. почти без накладных расходов.
по сути там массив и есть

Denis
07.05.2018
11:32:18

Pavel
07.05.2018
11:32:36

Denis
07.05.2018
11:32:53

Pavel
07.05.2018
11:33:03
А перерасход памяти тоже не вижу откуда - в сплошном массиве точно так же надо будет хранить укзатели на свободные кусочки

Pavel
07.05.2018
11:33:20

Pavel
07.05.2018
11:33:24
Так как они освобождаются не всегда с конца, а могут и из середины

Denis
07.05.2018
11:33:32

Dark
07.05.2018
11:33:37

Igor
07.05.2018
11:33:52
а освобождать нужно будет?

Pavel
07.05.2018
11:34:37
а освобождать нужно будет?
Когда структура не нужна, то этот кусочек памяти уходит обратно в список свободных. Это типа освобождение, но на самом деле память не освобождается.

Denis
07.05.2018
11:36:08
сделай как-нибудь, будет тормозить переделаешь

Igor
07.05.2018
11:36:25
я о другом. есть такой аллокатор - region, он выделяет большой кусок памяти, в пределах которого потом аллоцирует мелкие кусочки если нужно. потом когда всё это не нужно он одним махом всё удаляет. для всяких батчей - самое оно

Pavel
07.05.2018
11:37:08
Ну большой кусок никогда не нужно освобождать

Denis
07.05.2018
11:37:40

Pavel
07.05.2018
11:37:51
)))

Igor
07.05.2018
11:38:01
ну тогда да, делай как-нибудь, но так что-бы потом можно было поменять, а там будет видно

Stanislav
07.05.2018
11:39:14
речь я так понимаю идёт про случай c nogc?)

Google

Pavel
07.05.2018
11:39:32

Denis
07.05.2018
15:48:04
как найти место откуда вызвана функция где сидит pragma(msg, )?

Alexander
07.05.2018
16:21:41
Static assert 0

Denis
07.05.2018
16:21:58
оно само пропало после апдейта
из какого-то пакета прилетало, из сериализатора вайба, похоже

Alexander
07.05.2018
16:22:14
Ну и ок

Denis
07.05.2018
16:22:17
угу
месяц собирался силами чтоб найти это место, а оно возьми и пропади

elias
08.05.2018
07:01:34
привет. я смотрю, что парни спонсируют dlang https://opencollective.com/dlang. Интересно, их жены в курсе, на что идут деньги? Или, в основном, холостяки?

Admin
ERROR: S client not available

Valeriy
08.05.2018
07:04:28
Максимум поставить в известность.
Там же наверное, те кто миценирует не концы с концами сводят. Из свободных денег. Почему бы и нет.

Denis
08.05.2018
07:28:54
непонятно почему сумма именно такая, неужели там всё нафиг надо переписывать?

Ievgenii
08.05.2018
07:31:43

Denis
08.05.2018
07:32:25
Вопрос звучит не так

Ievgenii
08.05.2018
07:32:38
Это даже не месяц разработки

Denis
08.05.2018
07:34:22
Сейчас никакого плагина там нет что ли? Я думал что-то уже есть и оно работает но отстало от реалий современных

Ievgenii
08.05.2018
07:36:15
Я не знаю, но человек не хочет работать бесплатно. И он оценил свою работу в такую сумму
Вполне нормальный подход

Google

Denis
08.05.2018
07:47:47
https://forum.dlang.org/post/tkxpdgeredhwqraxnkxj@forum.dlang.org
мой вариант

Ievgenii
08.05.2018
07:51:32
Лично я привык к Идеи. Там, вроде, был какой-то плагин
Как-то привычно, чтоли

Denis
08.05.2018
07:52:17
Мне всё эти модные ИДЕ кажутся перегруженными. для старых языков это норм, новым такое не надо - достаточно подсветки синтаксиса и автокомплитов

Stanislav
08.05.2018
07:52:40
ну дык vscode вполне в духе минимализма (не считая электрон)
там вообще ничего почти нет в комплекте)

Ievgenii
08.05.2018
07:52:53
Ну не знаю. Рефакторинг, умный поиск и т.д.

Denis
08.05.2018
07:53:22

Maxim
08.05.2018
07:54:10
а почему рефакторинг не нужен?)
как минимум «переименовать символ в проекте» часто удобная штука)

Dark
08.05.2018
07:54:41

Denis
08.05.2018
07:55:01

Maxim
08.05.2018
07:55:21
это не то)

Denis
08.05.2018
07:55:22

Maxim
08.05.2018
07:56:01
в разных областях видимости могут быть переменные с одинаковым названием, где-то в строке может попасться такая же последовательность символов
а нужно переименовать, например, конкретную переменную

Stanislav
08.05.2018
07:57:53

Denis
08.05.2018
07:58:17
вот там оно ЛЕТАЕТ

Stanislav
08.05.2018
07:58:41
нууу там наверн ничего и нет :)