~AreEnn
~R4SAS
~orignal
~villain
&N00B
+Xeha
+relaybot
DUHOVKIN
Guest18377
HackerMan
KabaOS
Most2
Nausicaa
Ruskoye_911
Trusishka
Vort
`
acetone_
anon3
b3t4f4c3
flumental
mittwerk
nemiga
not_bob_afk
plap
poriori_
profetikla
segfault
soos
teeth
tensor
un
weko_
whothefuckami
onon
Не совсем понял про пул
orignal
можем брать все хопы тоннель с таким показателем только когда их будет не менее тысячи например
orignal
или 5 тыс
onon
Ну да, так выглядит лучше
onon
Но в любом случае пропускная способность конкретного узла - величина непостоянная
orignal
ну просто учитывать как фактор в профилировщике
onon
Сделай, посмотрим как будет работать
orignal
для начала N выпилю
orignal
потом поглядим
orignal
меня интересует критерий где в твоем коде можно сказать "да этот тоннель работает хорошо"
onon
Интересный вопрос
onon
Можно наверное среднюю скорость считать
onon
Средний джиттер
orignal
надо соизмерять отслыаемые поток с RTT
onon
Количество потерянных пакетов ещё
orignal
вот тут как то надо нешить
orignal
решить
onon
А конечная цель какакя? Запустить ютуб в 4к через 32 узла?
orignal
запустить ютуб в 240 для своих
onon
Через сколько хопов?
orignal
1 с каждой стороны
onon
И 240 это сколько в килобайтах/с
orignal
нет знаю
orignal
то чно там 240p
onon
Resolution 426 x 240
onon
Maximum 700 Kbps
onon
Recommended 400 Kbps
onon
Minimum 300 Kbps
onon
88 КБ/с примерно
orignal
ну вот это и надо
onon
Делай const int MIN_WINDOW_SIZE = 20;
onon
const int INITIAL_WINDOW_SIZE = 20;
onon
Должно заработать
onon
Ну и можно ещё LimitOutboundSpeed = 100000
onon
Так делать конечно нельзя, но тебе можно
orignal
больше никаких констант не надо?
onon
PREV_SPEED_KEEP_TIME_COEFF = 1
onon
INITIAL_RTT = 5000;
onon
INITIAL_RTO = 6000
orignal
понял
orignal
это везде можно или только там.
onon
Только себе
onon
И то это не гарантия
onon
Но пихать пакеты будет не смотря ни на что
orignal
счас проверим что без N будет
orignal
тогда такой вопрос
orignal
что надо поставить для 100 кбс?
onon
i2p.streaming.maxoutboundspeed = 100000
onon
Точно название параметра не помню
onon
Ну вот я сейчас через 2 узла 240p смотрю
orignal
а по умолчанию она сколько?
onon
Дохрена
onon
Тебе нужно ограничивать, чтобы не перегружать
orignal
я говорю про параметры для потока в 100 кбс
onon
Сверху ты ограничиваешь этим параметром, а снизу окном
onon
Ну там в байтах в сек
onon
100*1024
orignal
погляжу
onon
i2p.streaming.maxOutboundSpeed Max outbound speed of stream in bytes/sec. 1730000000 by default
onon
Наверное даже окно в 25 ставь
onon
MIN_WINDOW_SIZE = 25;
onon
INITIAL_WINDOW_SIZE = 25;
orignal
а минимально почему?
onon
Чтобы не зависал
onon
ютубчик
onon
Грубо говоря ты просто выключаешь CC
orignal
а на что оно вличет?
orignal
а ну понятно
orignal
то на что дед ругается
onon
Да
orignal
от выкидывания N эффект сразу значительный
onon
Я думаю просто в Европе ночь
orignal
возможно
orignal
отлично ютуб кажет
onon
N - это сколько килобайт/с было?
orignal
до 128
onon
1 мбит
onon
Вроде не так уж и медленно
orignal
понимаешь N гарантированно джава
orignal
суть то в этом ))
onon
В бантустанах очень распространённый тарифный план
orignal
i2pd не может выставить N в принципе
orignal
или L или O
onon
Угу
orignal
потому чем меньше джава узлов попадается в тоннелях тем лучше
onon
Почва для конспирологических теорий =)
orignal
в чем?
onon
> чем меньше джава узлов попадается в тоннелях тем лучше
orignal
ну а что не так?
orignal
ну и зачем строить тоннели через бантустаны?
onon
Ну у нас сеть вроде тем более анонимная, чем более распределённая
onon
Чтобы никто не мог контролировать все узлы в цепочке
orignal
тогда будет скорость низская
orignal
узлы не будут держать поток
orignal
ну и у меня позицию кому нужен транзит то поставит O
onon
Согласен
orignal
ну и по надо сремиться по возможности строить клиентские тоннели через джаву
orignal
надо же
orignal
дрозд не понимал как работает инродьюсер )))
onon
Ага, он думал что работает как TURN
orignal
реально считал что это прокси ))
Vort
"<onon> Вроде не так уж и медленно" - для одного туннеля - да. но когда этот канал делится между сотнями и тысячами туннелей - то уже получается чёрти-что
Vort
а если ещё учесть фоновый шум сети, то выходит что даже без пропускания полезного трафика эти узлы перегружены
sha512sum
libi2pd/HTTP.cpp:86:4: warning: moving a temporary object prevents copy elision [-Wpessimizing-move] 86 | std::move (std::string (line.substr(pos + len))));
sha512sum
libi2pd/HTTP.cpp:85:25: note: remove std::move call here 85 | return std::make_pair(std::move (std::string (line.substr(0, pos))),
sha512sum
libi2pd/HTTP.cpp:67:24: note: remove std::move call here 67 | std::stringstream ss(std::move(std::string(line)));
sha512sum
Какого фига там мув вообще?
sha512sum
~orignal
orignal
это с 20 или с 17?
orignal
правильно там мув
sha512sum
17, там гарантированное RVO будет
orignal
где именно у тебя не собирается.
orignal
поправлю
sha512sum
У меня собирается, но мув там не нужен и уменьшает перф
sha512sum
Варнинг выдаёт только
orignal
нужен
sha512sum
Там выполняется Copy Elision, std::string там была prvalue, а после std::move становится xvalue, из-за будет вызван доп перемещающий конструктор
orignal
там где в stringstream там move конструктор есть
sha512sum
Там только что созданная std::string мувается
sha512sum
Это только вредит. Любой только что созданный объект с конструктором, будет считаться prvalue и при принятии такого объекта по значению, мув или копи конструктора не будет
sha512sum
А с std::move будет гарантированно мув конструктор
sha512sum
Лучше без конструкторов лишних и деструкторов, чем с ними
orignal
мне надо вызвать именно мув конструтор там
sha512sum
А зачем?
orignal
чтобы избежать лишнего копирования
sha512sum
Так копирования и не будет
sha512sum
И мува тоже не будет
sha512sum
Объект сразу создастся внутри параметров конструктора, без копирований или перемещений
orignal
договорились
orignal
выпилю
sha512sum
godbolt.org/z/KTq475cbK У меня даже вот ссылка есть, где я такое активно использую.
sha512sum
Да и зачем вообще std::make_pair использовать, есть же CTAD 17 и можно писать просто std::pair{value1, value2}
orignal
потому что он там давно был
orignal
счас переделаю
orignal
так stingtream передавать через move или нет?
orignal
если мне надо запхнуть в него string_view
sha512sum
Ну так если надо запихнуть std::string_view, можно же создать из неё std::string. std::string будет prvalue в таком случае. А любое prvalue дополнительно мувать не надо
orignal
ты это проверяла?
sha512sum
Так в стандарте написано, можешь ту ссылку проверить, если бы оно так не работало, тот код бы просто не компилировался
sha512sum
privatebin.i2p/?8e2b46ffd38eb508#9xbbpWVnzkA666hma3Juj7PUxS6aMJkeLrxc4juXnecL Или вот попроще пример
orignal
счас поправлю
orignal
а давай ты остальной код на 17 переделеаешь
sha512sum
А давай ты поможешь xmpp клиент писать
orignal
мне некогда
sha512sum
)))
orignal
закоммтил
orignal
счас нормально?
sha512sum
Ну компилятор не жалуется
sha512sum
Значит должно быть нормально
orignal
меня волнует чтобы оверхеда не было
sha512sum
Ну теперь лучше да
shushkebab
Hi
shushkebab
how od i learn anything about libi2pd?
orignal
you can't. it's secrect knowledge
shushkebab
not ready yet?
shushkebab
how would you store address book and everything.
orignal
ready and works
orignal
sorry I don't have time to explain all of this
shushkebab
start a new one each time in memory or still have it in user directory
orignal
for addredssbook you need libi2pd_client
shushkebab
libi2pd too powerful in wrong hands?
orignal
no, it's just you who is not ready to use it
shushkebab
gotta figure it out on my own to be?
orignal
yes please