Почему потребление памяти увеличивается каждый раз, когда я запрашиваю mnesia?

Каждый раз, когда я выдаю запрос, часть моей памяти съедается и никогда не восстанавливается. Если я выдаю тот же запрос, расходуется больше памяти.

Например, если я выдаю этот запрос (и позже преобразовываю записи в карты):

CatchAll = [{'_', [], ['$_']}],
mnesia:dirty_select(read_store, CatchAll)

Редактировать: извините, изображение было совершенно неправильным — оно показывало процессы, а не запросы


person Andriy Drozdyuk    schedule 15.09.2016    source источник
comment
Какой язык? Можете ли вы заставить сборщик мусора (при условии, что он его использует)? В противном случае это может быть утечка с их стороны.   -  person Carcigenicate    schedule 15.09.2016
comment
Эрланг. Я не думаю, что смогу заставить его...   -  person Andriy Drozdyuk    schedule 15.09.2016
comment
Извините, я ничего не знаю об Erlang. Однако, если он использует GC, возможно, есть способ заставить его работать. Стоит попробовать.   -  person Carcigenicate    schedule 15.09.2016
comment
Насколько велик ваш стол? Вы читаете с копии диска или с копии оперативной памяти? Пожалуйста, предоставьте дополнительную информацию   -  person muehsi    schedule 16.09.2016
comment
диск + оперативная память. Проблема заключалась в хранении больших строк в каждой записи. На данный момент исправлено сохранение двоичных файлов.   -  person Andriy Drozdyuk    schedule 16.09.2016


Ответы (1)


Проблема заключалась в том, что я хранил строки вместо двоичных файлов в таблицах мнений.

Результатом http-запроса является строка:

httpc:request(get, {Url,[]}, [{timeout, ?TIMEOUT}], [])

Однако вместо этого его можно изменить на двоичный файл:

httpc:request(get, {Url,[]}, [{timeout, ?TIMEOUT}], [{body_format, binary}])

Это уменьшило объем памяти как минимум в 20 раз.

person Andriy Drozdyuk    schedule 16.09.2016
comment
Работал на меня. Я импортировал набор CSV-файлов, и мне не хватило памяти. Изменил мой импортер CSV для преобразования строк в двоичные, и проблема исчезла. Спасибо большое. - person tony wallace; 29.06.2021