Здравствуйте, __kot2, Вы писали:
__>Установка данных частями это уже антипаттерн, так как можем легко поломать их консистентность. Он должен быть разбит на атомарные независимые вещи
Всегда все устанавливают данные пакета частями одну часть за другой
А какие альтернативы?
__>я никогда не работал с пакетами напрямую, но это выглядит примерно так — есть данные для отправки, есть служебные структуры пакета, это все сериализуется куда-то, это все разные классы. встает вопрос о переиспользовании буфера для отправки другого пакета. так вот не надо это делать так явно. мы сериализуем данные и отдаем их куда-то для отправки, берем новый буфер и туда уже пихаем новые данные. а вот аллокатор для этих буферов может иметь некий кольцевой буфер в выделенном заранее массивчике или около того, чтобы там не new/delete работал медленно, а что-то кастомное
Единый буффер — может и не плохо, но если многопоточная среда — то усложняет значительно. Нужно по количеству потоков выделять n буфферов этих, ожидание, очередь. Возможно добавлю, если будет время, но для начала чтобы хотя бы лишние копии на пустом месте не создавались.