~AreEnn
~R4SAS
~acetone
~orignal
~villain
&N00B
+relaybot
DUHOVKIN
Leopold
Most2
Nausicaa
Vort
Xeha
anon2
b3t4f4c3
karamba_i2p
nemiga
not_bob_afk
poriori_
profetikla
soos
un
weko
whothefuckami_
orignal
i2p::crypto::Verifier * m_Verifier в IndextityEx
orignal
голый указатель
orignal
еще и std::mutex m_VerifierMutex в каждом из них
nick-kramer-117
Доброго времени суток, допилил TCP сервер/клиента для i2pd роутера. Залил на гитхаб.
nick-kramer-117
Доброго времени суток, допилил TCP сервер/клиента для i2pd роутера. Залил на гитхаб.
nick-kramer-117
У себя затестил сея бестиарий, ~12 частов сервер работает паралельно с i2pd роутером, клиентом спокойно подключаюсь. Пока нареканий нет. Работает стабильно.
nick-kramer-117
Тольк криво впил его в демна, но работает)
nick-kramer-117
впилил* демона*
Vort
к сожалению, специализированную кучу винда раздувает примерно так же, как и обычную: paste.i2pd.xyz/?449cd0e4e8e9fd78#xk77mUnAp6zDQTRbHfzYg1ZUovPVhvaj7GtkgWXgxAh
Vort
(общий график выделений памяти: paste.i2pd.xyz/?f564216d082422f3#HcyvNV4gS3Dwne4vkkQkTEsMDgUbNxjmiqj7F32cQZ3q )
relaybot
13Murdoch: тест
whothefuckami
тест да
whothefuckami
passed
orignal
надо подумать там насчет verifier в Indetity
Vort
"<~orignal> и какие предложения?" я думал над тем, чтобы объекты, вносящие наибольший вклад в фрагментацию главной кучи, из этой кучи вынести куда-то в другое место
Vort
однако вариант с простым созданием специальной кучи для винды оказался неудачным - её точно так же раздувает, хоть там и блоки все одинакового размера
Vort
"<~orignal> голый указатель" на IdentityEx я обратил внимание из-за того, что блок этого объекта в топе по объёму как выделенных, так и свободных блоков. это просто пример
Vort
о других объектах стоит тоже думать, но главная проблема - это то, что с ними делать
orignal
для EDDSA надо пул сделать я считаю
Vort
какие критерии для определения того, надо делать пул или не надо?
orignal
насколько часто выделаются удаляются
orignal
грубо говоря EDDSA часто ECDSA-521 редко
Vort
посчитать желательно, что часто, а что - редко
Vort
ну и мне кажется, что размер блока тоже надо как-то учитывать
Vort
вот явно много выделяется объектов по 32 байта. им нужен пул?
orignal
думаю выкинуть статс со страницы джампов
orignal
вот как раз по 32 и надо
orignal
более того я думаю что мелкие надо выделять сразу пачками
Vort
"<~orignal> более того я думаю что мелкие надо выделять сразу пачками" чтобы у них при освобождении было больше шансов объединиться в более крупный блок?
orignal
чтобы они не влезали в промежуток между крупными
orignal
а вяделялись рядом
Vort
тогда вопрос что понимается под пачками: 1. в цикле, допустим, тыщу malloc? 2. выделение более крупного блока одним malloc и нарезание его на кусочки вручную?
whothefuckami
Мне тут кстати недавно рассказали про Boost.Pool. Я хз что вы хотите, но может он вам тоже подойдёт
Vort
хотя, тут, наверно, больше речь не о том, чтобы "не влезали", а чтобы меньше перемешивались с крупными
Vort
то есть, чтобы было, допустим, не 10 1000 10 1000 10 1000, а 10 10 10 1000 1000 1000
whothefuckami
Можно по разному хипу для каждого потока?
whothefuckami
Или вы уже так делаете?
Vort
whothefuckami: ну посмотри что я писал за последние сутки. я сделал одку кучу для одного типа данных
Vort
и её точно так жа раздуло
Vort
тут ещё надо чётко понимать задачу
Vort
можно ускорять выделения блоков, увеличивая потребление памяти, можно наоборот
Vort
как я понимаю, с CPU сейчас проблем особо нету. а вот память лишняя зависает
orignal
нет 1000 malloc подряд
orignal
а потом при запросе уже брать созданные
Vort
ок, понял
Vort
сейчас выложу карту памяти по результатам моего эксперимента с отдельной кучей
orignal
whothefuckami делаем
orignal
много где
Vort
серо-розовый цвет - индикатор освобождённой мелочи
Vort
"делаем" - то не кучи, а пулы. куча у них общая
orignal
ну да пулы
orignal
делать свою кучу это так себе занятие
Vort
чем плохо? (я-то догадываюсь, но всё же интересно)
orignal
писать код кучи вообще дело дурное
orignal
лучше пулы усовершенствовать
Vort
ну это не поможет в случае когда куча специально сделать так, чтобы её раздувало. (других объяснений того, что я вижу на винде, у меня нету)
Vort
сделана*
orignal
идея в том чтобы максимально использовать повторно
Vort
кстати, сейчас пулы когда чистятся, то в ноль, да?
Vort
может, стоит немножко оставлять? к примеру, процент от общего количества выделенных (живых) объектов
orignal
да
orignal
можно
orignal
но тогде надо считать
orignal
я просто сделал максимально просто
Vort
ну ++ это одна из самых лёгких операций
Vort
просто очистка в ноль практически гарантирует, что всё очищенное надолго зависнет в куче (по крайней мере на win7)
Vort
надо бы делать анализ и для других ОС, но с этим я мало чем могу помочь
orignal
да знаю я
orignal
говорю же сделал самое просто
orignal
е
Vort
окей
orignal
да пожалуй переделаю
orignal
буду уменьшать каждый раз в половину