Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
18.04.2014, 01:13
|
|||
|---|---|---|---|
B-Tree и фрагментация памяти. |
|||
|
#18+
Если мы навтыкали в B-tree ключей, а потом несколько случайных из них удалили, то маловероятно, что дерево будет занимать памяти столько же, сколько бы оно занимало, если бы мы в пустое дерево добавили все оставшиеся ключи с начала. То есть, когда мы удаляем узел в каком-нибудь std::map, деаллокатору говорят "верни память, выделенную под этот узел", память освобождается, в дереве крутятся узлы и всё. В B-Tree узлы хитрее, а удаление одного ключа далеко не всегда означает освобождение какой-либо памяти или удаление каких-либо узлов. Насколько B-Tree подходит для приложений, в которых идёт оперативное добавление-удаление ключей? Имеется приложение, хранящее 1 млрд ключей в b-tree. В это дерево активно добавляются ключи и при переходе их количества за предел, запускается процедура поиска и удаления старых. В дереве поддерживается одно и то же логическое количество записей. При этом приложение медленно и верно растёт по памяти, а valgrind молчит. Возникают подозрения на описанный в первом абзаце эффект. Эмуляция проводилась на дереве меньшего размера, эффект проявляется, но потребление памяти постепенно стабилизируется и перестаёт расти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.04.2014, 01:52
|
|||
|---|---|---|---|
B-Tree и фрагментация памяти. |
|||
|
#18+
gbl37004Если мы навтыкали в B-tree ключей, а потом несколько случайных из них удалили, то маловероятно, что дерево будет занимать памяти столько же, сколько бы оно занимало, если бы мы в пустое дерево добавили все оставшиеся ключи с начала. А с чего такие далеко идущие выводы? Если valgring молчит, то каким образом ты узнаёшь, что память течёт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.04.2014, 02:02
|
|||
|---|---|---|---|
B-Tree и фрагментация памяти. |
|||
|
#18+
MasterZivgbl37004Если мы навтыкали в B-tree ключей, а потом несколько случайных из них удалили, то маловероятно, что дерево будет занимать памяти столько же, сколько бы оно занимало, если бы мы в пустое дерево добавили все оставшиеся ключи с начала. А с чего такие далеко идущие выводы? Если valgring молчит, то каким образом ты узнаёшь, что память течёт? 1. Далеко идущие выводы из устройства b-tree. 2. Смотрю на количество занимаемой процессом памяти. Логически постоянно одно и то же количество объектов, а память всё жрёт и жрёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.04.2014, 07:36
|
|||
|---|---|---|---|
|
|||
B-Tree и фрагментация памяти. |
|||
|
#18+
Паше, ты уверен, что именно B-дерево реализовал? Узел (кроме корневого) всегда заполнен не менее чем наполовину в B-дереве Если жалко памяти - B* дерево рассмотри ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.04.2014, 12:36
|
|||
|---|---|---|---|
B-Tree и фрагментация памяти. |
|||
|
#18+
gbl37004Насколько B-Tree подходит для приложений, в которых идёт оперативное добавление-удаление ключей? Если ты добавил ключик и велика вероятность (90%) что следущая транзакция этот ключик удалит то лучше хранить последние изменения в маленьком LRU буфере и по его заполнению вытесняемые ключи складывать в дерево. Или разбить дерево на несколько поддеревьев. Одно - оперативное а другое для долгосрочных данных. Для каждого - подобрать персонально способ хранения и размер блока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.04.2014, 13:44
|
|||
|---|---|---|---|
B-Tree и фрагментация памяти. |
|||
|
#18+
B-клоукПаше, ты уверен, что именно B-дерево реализовал? Узел (кроме корневого) всегда заполнен не менее чем наполовину в B-дереве Если жалко памяти - B* дерево рассмотри Я не реализовал, взял готовое гугловое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.04.2014, 13:45
|
|||
|---|---|---|---|
B-Tree и фрагментация памяти. |
|||
|
#18+
maytongbl37004Насколько B-Tree подходит для приложений, в которых идёт оперативное добавление-удаление ключей? Если ты добавил ключик и велика вероятность (90%) что следущая транзакция этот ключик удалит то лучше хранить последние изменения в маленьком LRU буфере и по его заполнению вытесняемые ключи складывать в дерево. Или разбить дерево на несколько поддеревьев. Одно - оперативное а другое для долгосрочных данных. Для каждого - подобрать персонально способ хранения и размер блока. Такие соображения разумны, но текущая ситуация состоит в том, что имеется некая реализация, которая охреневает по памяти и хочется понять причину. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.04.2014, 14:14
|
|||
|---|---|---|---|
B-Tree и фрагментация памяти. |
|||
|
#18+
боевые, ты - это топик-стартер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.04.2014, 15:03
|
|||
|---|---|---|---|
B-Tree и фрагментация памяти. |
|||
|
#18+
maytonбоевые, ты - это топик-стартер? Д... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.04.2014, 15:31
|
|||
|---|---|---|---|
B-Tree и фрагментация памяти. |
|||
|
#18+
боевыеТакие соображения разумны, но текущая ситуация состоит в том, что имеется некая реализация, которая охреневает по памяти и хочется понять причину. А у тебя есть какие-то цифры? Ну к примеру ключи - текстовый файлик 1 млрд строк длиной 8 Гиг. А софт во время работы аллоцировал 16 гиг. Или что-то в этом роде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&mobile=1&tid=2019526]: |
0ms |
get settings: |
13ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 301ms |
| total: | 448ms |

| 0 / 0 |
