~AreEnn
~R4SAS
~orignal
~villain
&N00B
+Xeha
+relaybot
DUHOVKIN
Guest8889
HackerMan
Most2
Nausicaa
Ruskoye_911
Vort
`
acetone_
ananas
anon3
b3t4f4c3
fidoid_
nemiga
not_bob_afk
plap
poriori
profetikla
soos
teeth
tensor
un
weko_
whothefuckami
R4SAS
orignal: херово че
R4SAS
что так утекает
orignal
это там где много дестинейшенинов?
R4SAS
да
R4SAS
30352 i2pd 20 0 2471976 324140 7496 S 14,6 4,0 6757:11 `- /usr/sbin/i2pd
orignal
так ты знаешь что надо сделать
R4SAS
+33 мб
R4SAS
за 2 дня
orignal
надо чистить пул
orignal
периодически
orignal
у меня вот ничего не растет почти
R4SAS
и как я его чистить буду
R4SAS
на ходу
orignal
по таймеру в ClientDestination
orignal
и еще
orignal
std::unordered_map<uint32_t, std::shared_ptr<Stream> > m_Streams; // sendStreamID->stream
R4SAS
так а его разве нет?
orignal
думаю растет вот тут
orignal
есть наверное
orignal
но i2p::util::MemoryPool<Packet> m_PacketsPool; не чистится
R4SAS
просто как ты помнишь, тут всякие вещи висят
R4SAS
и на половине туннелей есть постоянно запрсы
orignal
и стримов ломится много я думаю
R4SAS
нее
R4SAS
от силы 3 десятка в раз
R4SAS
я вот сейчас пробежался, более 30 даже не насчитал
orignal
я не это спрашиваю
orignal
смотри в ирке стрим стоит сутками
orignal
один и тот же
R4SAS
нц
R4SAS
ну
orignal
а у тебя наверное
orignal
много короткоживущих
orignal
которые создаются и закрываются
R4SAS
ну они и есть основная кипа запросов
orignal
ну так вот каждый их них увеличивает этот unordered_map
orignal
в этом проблема
orignal
вопрос сколько у тебя там памяти?
R4SAS
orignal: хватает, 8 вроде
orignal
так а чего тогда паришься?
R4SAS
ну, я не порюсь конкретно сейчас, но все равно надо понять почему
orignal
а почему я тебе сказал ))
R4SAS
ибо если будет нагрузка в десятки раз выше, то чего будет твориться?
orignal
ничего
orignal
когда то остановится рост размера таблиц
R4SAS
запускать ш2зв под гдб или валгрндом не вариант
R4SAS
ибо сразу скорость падает
orignal
так зачем?
orignal
если причина известна
R4SAS
а вдруг не там?
orignal
попробуй поменять unordered_map на map
R4SAS
она же должна вычищаться
orignal
нет
orignal
в том то и дело
R4SAS
это жу тупо таблица с разстущим индексом
orignal
это bucket-ы не вычищаются
R4SAS
растущим*
orignal
если для индекса его нет создается новый
orignal
а пустые не удавляются
R4SAS
бред
R4SAS
я думал вычищается полностью память если нет данных
R4SAS
ибо как я понимаю повторно индекс не может использоваться
R4SAS
либо это крайне малая вероятность
orignal
нет
orignal
полностьб вычищать если нет данных надо принудительно
orignal
и редко бывает что таблица пустая
R4SAS
ну а как в реляционке сделать нельзя?
orignal
не знаю
orignal
так устроен unorderd_map
orignal
говорю же попробуй заменить на map
orignal
он иначе работает
orignal
но медленнее
orignal
примерно на четверть
R4SAS
а как в unordered удаляется запись?
orignal
erase как обычно
orignal
это удаление элемента
orignal
но не bucket-а
R4SAS
bucket это что у нас?
orignal
ну ты предстявляешь работу хэш таблицы?
R4SAS
индекс -> указатель
orignal
я про то как внутри
orignal
там группируется по индексам
orignal
каждая такая группа называется bucket
R4SAS
> unordered_map doesn't guarantee iterator stability. It provides pointer stability instead. This means allocation/deallocation on every insertion/removal of the element.
orignal
естественно
orignal
там еще много чего
R4SAS
некоторые через std:swap предлагают зачищать)))
orignal
ну как вариант да