2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Быстрый мультизадачный менеджер памяти
Сообщение16.11.2015, 22:16 
Заслуженный участник


26/05/14
981
Я не спорю о китах и слонах, я предлагаю ТС вместо решения сложной общей задачи (параллельный универсальный аллокатор) оглядеться вокруг в поисках специализированного решения (последовательные специализированные аллокаторы). Это ещё одна альтернатива которую, с моей точки зрения, надо иметь ввиду.

 Профиль  
                  
 
 Re: Быстрый мультизадачный менеджер памяти
Сообщение16.11.2015, 22:27 
Аватара пользователя


07/02/12
1433
Питер
sup в сообщении #1074084 писал(а):
Если кто-то грязными сапогами небрежно прогуляется по своему куску памяти - то конец этой информации.

Да пофигу, это меньшее из зол. Там есть трекеры, в спец сборках это ловится впринципе неплохо. Да и если такой процесс будет оверранить, он скончается ооочень быстро, при такой оживленности то..
sup в сообщении #1074084 писал(а):
А вот что делать с выравниванием. Если это просто байтовые строки - то ладно. А если это память под структуры с содержательными объектами, то тут все не очень просто.

Тут хинты для менеджера памяти неплохо работают - по умолчанию все выравнивается, а для строк - нет.
sup в сообщении #1074084 писал(а):
Можно ли избежать полной блокировки бадди-аллокатора при выделении или освобождении памяти?

Вероятно можно - если на каком-нить из верхних этажей распихать локи. Главное, суметь разбить операцию выделения/освобождения на две атомарные теоретико-стойкие операции - вход и выход из операции. Неплохая инженерная задача для курсовой. Жаль, меня давно уже выпустили :D

-- 16.11.2015, 22:31 --

slavav в сообщении #1074103 писал(а):
я предлагаю ТС вместо решения сложной общей задачи (параллельный универсальный аллокатор) оглядеться вокруг в поисках специализированного решения (последовательные специализированные аллокаторы).

Так примерно так оно сейчас и работает. И чем дальше, тем чаще приходится анализировать, как эти специализированные аллокаторы поживают и не поехало ли там чего наперекосяк, сводя на нет оптимизации - а хочется вместо этого делом заниматься =)

 Профиль  
                  
 
 Re: Быстрый мультизадачный менеджер памяти
Сообщение09.12.2015, 01:21 
Аватара пользователя


07/02/12
1433
Питер
В общем, пока зарядил такую схему - работает 20 пулов, в каждом фиксированный размер блока. начинается с 24 байт, каждый следующий в 1.5 раза больше. каждый пул саморасширяющийся с основанием 2. остаток отдается глобальному 'медленному' менеджеру памяти, его почти нет. выбор пула происходит без глобальных локов, внутри пула есть лок, но их 20 разных. плюс пул работает за O(1). в итоге весь менеджер работает за O(1), оверхед - в среднем менее 50% (в основном из-за роста пулов с основанием 2). со скоростью пока справляется + он мультитредовый.
Это порвало по скорости встроенный менеджер памяти в GCC+debian minimal последний.

 Профиль  
                  
 
 Re: Быстрый мультизадачный менеджер памяти
Сообщение09.12.2015, 07:47 


27/08/14
207
Пулы расширяются, пока есть память или как-то ограничены? Если в пуле нет места, то память выделяется из следующего пула или сразу используется глобальный менеджер?

 Профиль  
                  
 
 Re: Быстрый мультизадачный менеджер памяти
Сообщение10.12.2015, 20:15 
Аватара пользователя


07/02/12
1433
Питер
Progger в сообщении #1080819 писал(а):
Пулы расширяются, пока есть память или как-то ограничены? Если в пуле нет места, то память выделяется из следующего пула или сразу используется глобальный менеджер?

пулы не ограничены. из глобального

 Профиль  
                  
 
 Re: Быстрый мультизадачный менеджер памяти
Сообщение23.09.2024, 02:11 
Аватара пользователя


07/02/12
1433
Питер
Update: система доросла до производительности, когда стали проявляться просадки на мутексах в рамках одного банка. Не смотря на то, что действий внутри критической секции делать не много, из-за дорогих конфликтов начались проблемы. Добавили горизонтально несколько банков для каждого уровня. С горизонтальным итератором индекса без интерлока, ибо там точная работа не требуется. Кол-во банков на каждом уровне увеличивается при необходимости сторонним смотрителем, анализирующем частоту вызовов банков. Взлетело.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу Пред.  1, 2

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group