~AreEnn
~AreEnn_
~R4SAS
~orignal
~villain
&N00B
Guest7184
Komap-
Most2
Nausicaa
Nikat
Opax
Vort
Xeha
`
acetone
anon
b3t4f4c3
fidoid
i
ice_juice
karamba_i2p
nemiga
not_bob_afk
poriori
profetikla
qend
segfault
slfd
soos
teeth
un
whothefuckami
woodwose
orignal
Vort ты будешь смеяться я таки сделал солюшин и собрал в VS
orignal
так вот практичесий вывод
orignal
мьютекс жрет дохуя памяти
Vort
вывод странный
orignal
а ты сам посмотри
orignal
VS же показывает размер отдельной структуры
orignal
и разбивку по полям
Vort
сколько всего мьютексов в i2pd?
orignal
все было бы пох
orignal
но есть крайне непритяная штука в TransitTunnelGateway и TransitTunnelEndpoint
orignal
их много а мьютекс поряда 300 байт занимает
Vort
учитываешь что дебаг и релиз билды имеют разные размеры объектов?
orignal
не подумал
orignal
но вряд ли будет большая разница
orignal
а ты что у себя видишь?
orignal
TransitTunnelGateway например
Vort
я сейчас тестовый проект сделаю
orignal
я посмотрел код - там мьютеск не нужен
Vort
хм. может насчёт дебаг-релиз отличий я не прав. напечатал sizeof(std::mutex) - получил 48 байт что в дебаг что в релиз билде
Vort
#define _Mtx_internal_imp_size 48
Vort
а вот откуда оно идёт
Vort
не представляю откуда у тебя 300 байт взялись
Vort
может из-за другой версии студии
orignal
я не знаю я в VS просто подсветил класс
orignal
там показало его полный размер
orignal
даже я нажал memory layout и охуел
Vort
блин. у меня проект был на 32 бита настроен. в 64 битном проекте 80 байт
Vort
github.com/ojdkbuild/tools_toolchain_vs2017bt_1416/blob/d3cdb9a6cb3d92f6081290849f4386a9ff2ce30a/VC/Tools/MSVC/14.16.27023/include/thr/xthrcommon.h#L51
orignal
разумеется я смотрел 64
orignal
все равно многовато
Vort
в моей студии нету memory layout. это новая фича
orignal
у тебя какая?
Vort
2019
orignal
а ну у меня 2022
Vort
TransitTunnelGateway: public TransitTunnel, class TransitTunnel: public TunnelBase
Vort
там дофига всего набирается
Vort
i2p::crypto::AESKey m_LayerKey, m_IVKey
orignal
и да таки 80 байт
orignal
TransitTunnelEndpoint 536
orignal
байтов
orignal
это никуда не годится
orignal
TransitTunnelGateway 298
Vort
вот-вот
orignal
а вот TransitTunnelParticipant всего 168
orignal
понятно откуда столько памяти жрется на каждый ебучии транзит
orignal
так я не понял в 2019 размер струткты не показывается что ли?
Vort
ну я не замечал
Vort
печатаю sizeof когда надо
orignal
просто когда наводишь мышку на класс?
orignal
может потому что у меня собрано как полноценный солюшн?
orignal
в любом случае надо поправить
orignal
TransitTunnelEndpoint
Vort
навожу мышку на класс - показывает, что это класс :)
Vort
devblogs.microsoft.com/visualstudio/size-alignment-and-memory-layout-insights-for-c-classes-structs-and-unions
Vort
In Visual Studio 2022 version 17.8, we introduced a feature that allows C++ developers to easily view the size and alignment of classes, structs,...
orignal
лол
orignal
у меня 17.13
Vort
я офигеваю что они какие-то важные фичи в под-версии добавляют
Vort
то же и новых версий винды касается
Vort
не могут релиза основной версии дождаться что ли
orignal
ну вот я просто вчера развлекался что IDE показывает и увидел такое