IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2021/09/10
~AreEnn
~R4SAS
~orignal
~villain
&N00B
+Xeha
+relaybot
DUHOVKIN
Guest60783
Most2
Nausicaa
Vort
`
acetone_
ananas
anon3
b3t4f4c3
fidoid
nemiga
not_bob_afk
plap
poriori
profetikla
soos
teeth
tensor
un
weko_
whothefuckami
orignal я еще завтра дегса потрясу по этому поводу
R4SAS ага
orignal нужна "помощь клуба" то есть отдела Ы ))
R4SAS я завтра гляну чего мне тут в memleak-ах насчитает
orignal она не течет
R4SAS я понимаю что не течет
R4SAS по она где то остается
R4SAS и это будет видно
orignal если и течет то только внутри openssl
R4SAS либо внутри libc
R4SAS точнее libstdc++
orignal закоммитил
orignal сразу на 10 мегов экономия
R4SAS orignal: смотри че
orignal че?
orignal и каков вывод?
R4SAS я так понимаю это выделенная память висит?
R4SAS или что есть Heap memory&
orignal heap memory это как раз так которая malloc-ом выделяется
R4SAS посмотрим тогда завтра чего больше всего будет в HitCount
R4SAS ибо сейчас это RouterInfo.cpp, line 392
orignal m_Properties[key] = value; ?
orignal ее надо заменить на emplace
orignal это очень старый код когда еще emplace не работал
R4SAS потом на 367 выделяется 249 кб, и на 408 - 684кб
R4SAS ой
R4SAS не 408, а 200
R4SAS auto address = std::make_shared<Address>();
orignal вот это жопа
orignal я уже говорил
R4SAS addresses->push_back(address);
R4SAS че там еще
orignal короче все в RI сидит
R4SAS m_RouterIdentity = std::make_shared<IdentityEx>(m_Buffer, m_BufferLen);
R4SAS 3511 раз, объем 1.7 мб
orignal видать под виндой все не так плохо как под линуксом
orignal факт что последний коммит дает видимый эффект
R4SAS сейчас соберу
R4SAS ну а вспомни че было 5 лет назад?)))
orignal ну так счас и проц не жрет от слова совсем ))
orignal кстати 5 лет назад потребление памяти было примерно такое же
R4SAS нееет
orignal и я еще тогда пытался понять куда она девается
R4SAS тогда очень дико начинало утекать
R4SAS а на старте было не менее 40 мб
orignal ну утечки это другая беда
R4SAS сейча уже 20 мб на стартек
orignal дык прогресс ощутимый
orignal вот разберу эту жопу с адресами
orignal может еще лучше станет
orignal потому что их много
R4SAS я надеюсь ты сделал обработку если длинна будет все же более 8 байт в последнем коммите
R4SAS т.е. если роутер с RSA попадется
orignal само собой ))
R4SAS ибо длина какая там может быть ты сам виишь
R4SAS if (excessLen > MAX_EXTENDED_BUFFER_SIZE - 4) -- это?
orignal либо не с RSA а кто нибудь специально левый подсунет
orignal угу
orignal на самом деле RSA сразу кидает ошибку
orignal но все равно не помешает
R4SAS LogPrint (eLogError, "Identity: Unexpected excessive signing key len ", excessLen);
R4SAS а почему error, если ты не прерываешь работу
orignal чтобы было сразу видно
R4SAS ладно, тебе виднее
R4SAS жду пока дебаржный бинарник слинкуется и заново на профилировщике запущу
orignal я думаю это касается только линукса
R4SAS да нифига
R4SAS я же наблюдаю у себя выше 100 мб
R4SAS это сейчас еще кстати улучшилось ибо эльгамаль выпилили
R4SAS из туннелей
R4SAS так и не понял почему deflator выделяет 4 раза по 1 мегабайту
R4SAS 17 раз
R4SAS 4 утечки по 17 вызовов
R4SAS м...
R4SAS это вероятно как то связано с количеством туннелей
R4SAS да не, нет у меня столько туннелей
R4SAS ClientDestination::Start
R4SAS m_StreamingDestination = std::make_shared<i2p::stream::StreamingDestination> (GetSharedFromThis ());
R4SAS StreamingDestination::StreamingDestination (... m_Gzip (gzip) ...)
orignal дестинейшины это другая тему
orignal вот deflator любопытно
orignal потому что счас мы не сжимаем
R4SAS у меня просто не 17 туннелей
orignal а делаем фейк
orignal то что выше 100 мегов когда много стримов и всякого такого это нормально
orignal а у меня был пустой роутер только с NTCP2
orignal SSU это другая засада
R4SAS memset (&m_Deflator, 0, sizeof (m_Deflator));
R4SAS z_stream m_Deflator;
R4SAS значит этот размер приходит из zlib...
R4SAS и если поделить, то как раз выходит стандартный размер в 64К
R4SAS но почему 4 участка, и по 17 так и не ясно
orignal мне не ясно зачем он вообще нужен
orignal ладно разберемся
R4SAS я понял почему оно создается
R4SAS потому что m_StreamingDestination = std::make_shared<i2p::stream::StreamingDestination> (GetSharedFromThis ())
R4SAS а в объявлении такое:
R4SAS StreamingDestination (std::shared_ptr<i2p::client::ClientDestination> owner, uint16_t localPort = 0, bool gzip = true)
R4SAS ты знаешь чего надо делать
R4SAS уже давно обсуждали это
R4SAS-revo ну и этот профилировщик как то странно показывает походу
R4SAS-revo видимо эти 4 строки это один и тот же участок, на который ссылаются все эти shared_ptr
R4SAS-revo т.е по факту имеем 17 блоков по 64к
R4SAS-revo из-за того что по дефу опция gzip включена, и не читается из конфигов туннелей
orignal возможно
orignal <degs> сама собой, только целыми страницами
orignal ответ на вопрос
R4SAS насчет gzip сделаешь сам?
R4SAS только тут один вопрос
R4SAS а че будет если клиент укажет false, а на сервере будет true>
orignal не понял вопрос
R4SAS если в конфиге туннеля клиент поставит gzip = false, а на сервере будет gzip = true
R4SAS то что случится?
orignal ничего
orignal клиент будет отправлять нежатый а сервер жатый
R4SAS клиент тупо не сможет распаковать?
zlatinb orignal: относно SSU2 ето книжку об которою тьй говорил - она? Stevens W.UNIX Network Programming.v.III.Internetworking With TCPIP.Prenthall.[ENG,528p.,1999].pdf
orignal zlatinb наверное да
orignal там есть раздел про мультикаст
zlatinb - скачает -
orignal R4SAS gzip всегда распаковывают
orignal вне зависимости от настройки
R4SAS из-за этого спрашиваю
R4SAS если gzip = false, то i2p::data::GzipNoCompression
orignal так это на отправку
orignal на получение он сам разбирается
R4SAS а ну да, deflate же сжатие
orignal а для получения уж что придет
R4SAS вижу где inflate логику
R4SAS и всё же, будем делать отключение сжатия?
R4SAS для клиентских
R4SAS я понимаю что оно нифига практически не создает нагрузку
R4SAS но ве же
orignal так оно и так сделано
orignal я не понимаю вопроса
orignal оно тормозило сильно кстати
R4SAS orignal: сейчас всегда сжимается
R4SAS либо я не понимаю логику
orignal оно всегда сжимается
orignal но иногда только копирует без сжатия
orignal если ставишь gzip= false оно отправляет как будто сжатое
orignal но реально нет
R4SAS так я же говорю что у нас gzip не считывается
R4SAS ни где кроме udp туннелей
R4SAS и то только клиентских вроде
orignal считаывается
orignal в HTTP точно
orignal я проверял
R4SAS ну, это серверный туннель
R4SAS а я про клиентв
orignal тоже вроде читалось
orignal я проверю
R4SAS так я уже показывал
R4SAS github.com/PurpleI2P/i2pd/blob/openssl/libi2pd_client/ClientContext.cpp#L609 -- единственное место в клиентских
R4SAS i2pd.exe!_ZN3i2p4data10RouterInfo14ReadFromStreamERSi Line 392 + 0x12ee bytes 00007ff6fc354818D:\devel\project\PurpleI2P\i2pd\libi2pd\RouterInfo.cpp, line 392
R4SAS 8999 хитов
orignal посмотрю
R4SAS растет потихоньку
orignal говорю же
R4SAS далее i2pd.exe!_ZN3i2p9transport7SSUData16ProcessFragmentsEPh Line 249 + 0x761 bytes 00007ff6fc3afba9D:\devel\project\PurpleI2P\i2pd\libi2pd\SSUData.cpp, line 249
R4SAS 8519 хитов
orignal а вот с фрагментами надо тоже разбираться
orignal да ты прав для клиента мы не читаем
orignal надо поправить
R4SAS вроде вычистилось там
R4SAS упало до 5к
orignal ты про фрагменты?
R4SAS да
R4SAS а вот буффер от чтения не вычищается
R4SAS от чтения RI
R4SAS его вызовов кстати меньше
R4SAS ~2400
R4SAS при количестве роутеров ~4k
orignal буду дальше чинить
orignal счас лизсеты чиню
orignal тот крендель вчерашний писал
R4SAS какой?
orignal на ru
R4SAS уже не помню))
orignal что в лизсете появляются протухающий и новый тоннели враз
R4SAS вспомнил теперь
orignal я согласен что
orignal это не дело
orignal залил