сча закоммичу)
https://github.com/fsprojects/pulsar-client-dotnet/commit/c7857a120c9dcb40a8de64db66e2984a93c65f72 Там много чего пришлось переделывать, но там самое основное, это что там когда месседжи в батч складывались, то доп массив создавался, а теперь заюзал RecyclableMemoryStream для этого, т.е. записываю туда, а перед отправкой в сокет перематываю на начало и копирую, а потом понятно диспоуз, и все без GC
вот тот же вопрос хотел задать...
Ему надо вперёд-назад по стриму ходить, на пайпах так нельзя
а там уже внутри работа с сокетом на пайпах...
да, там как раз пакет внутри Sockets.Unofficial, т.к. от микрософта пайпа для сокетов так и не вышло
Вот это кстати странно, давным давно продвигали пайпы, а по факту только аспнет его юзает
А ты не пробовал переписать на measure, чтобы не перематывать стрим? https://github.com/protobuf-net/protobuf-net/blob/dbe3b457b017f22d8773ffc70e307b8708bbff34/src/protobuf-net/Serializer.cs#L63
неа, не очень пока вижу как это поможет) мне несколько перемоток нужно, один для батча, один для итогового сообщения чтобы CRC посчитать. Но можешь попробовать если хочешь) Еще могу PerfViewData.etl.zip скинуть, там уже пока не так понятно что теперь оптимизировать
Да я же пробовал, но после того, как надо станцевать гопака для stackallock span, решил повременить с байтоеблей на ф#
ок, я могу добавить в тулы stackallock в три строчки, не сложно)
готово https://github.com/fsprojects/pulsar-client-dotnet/blob/perfnet8/src/Pulsar.Client/Common/Tools.fs#L175-L177
я чот забыл, а чо они это в кор либу-то не хотят брать? у меня такое же говно просто много где
В корлибе нет спанов.
она таргетит ns2.0 и ns2.1
Обсуждают сегодня