~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
)))
R4SAS
я завтра гляну чего мне тут в memleak-ах насчитает
orignal
она не течет
R4SAS
я понимаю что не течет
R4SAS
по она где то остается
R4SAS
и это будет видно
orignal
если и течет то только внутри openssl
R4SAS
либо внутри libc
R4SAS
точнее libstdc++
orignal
закоммитил
orignal
сразу на 10 мегов экономия
R4SAS
orignal: смотри че
orignal
че?
orignal
и каков вывод?
R4SAS
я так понимаю это выделенная память висит?
R4SAS
или что есть Heap memory&
R4SAS
?
orignal
heap memory это как раз так которая malloc-ом выделяется
R4SAS
посмотрим тогда завтра чего больше всего будет в HitCount
R4SAS
ибо сейчас это RouterInfo.cpp, line 392
orignal
m_Properties[key] = value; ?
orignal
ха
orignal
ее надо заменить на emplace
orignal
это очень старый код когда еще emplace не работал
R4SAS
потом на 367 выделяется 249 кб, и на 408 - 684кб
R4SAS
ой
R4SAS
не 408, а 200
R4SAS
auto address = std::make_shared<Address>();
orignal
да
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>
R4SAS
?
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
а
R4SAS
вспомнил теперь
orignal
я согласен что
orignal
это не дело
orignal
залил