Re[10]: Про перемещение (на примере кода)
От: Shmj Ниоткуда  
Дата: 15.04.25 00:50
Оценка:
Здравствуйте, Marty, Вы писали:

M>Вполне простой, вполне оптимальный, вполне расширяемый. Уровень мидла в РФ, на ЗП 3-4 кбаксов по курсу


Но вообще если бы такая задача возникла — использовать сериализатор — то зачем его писать с нуля, когда есть готовые, годами отлаженные?

S>>2. Скорость — чтобы быль чем меньше лишних преобразований (особенно тяжелых — без фанатизма) и копирований памяти туда-сюда.

M>Приведённый пример вполне отвечает этому критерию

Ну в вашем же коде для сериализации — если нужно по итогу получить массив байт uint8_t* для FFI — нужно будет создать буффер (вектор байт) — и по сути скопировать в него все данные — расширяя _buff.resize(_buff.size() + size);

Т.е. по сути делается дурная работа — перекладывание байт из одного хранилища m_place в другое. Зафига?

Я этого шага избежал с помощью перемещения — забрал просто уже существующие байты пакета, т.к. они уже ему, готовому к умному погребению, более не понадобятся.
=сначала спроси у GPT=
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.