Производительность сериализации в C ++ - PullRequest
7 голосов
/ 24 марта 2009

Я создаю распределенное приложение C ++, которое должно выполнять сериализацию и десериализацию данных, хранящихся в контейнерах std.

В настоящее время Boost.serialization принята. Тем не менее, он выполняет ужасно. Наше B-дерево также использует Boost.serialization для хранения данных пары ключ-значение, однако, если мы изменим Boost.serialziation на memcpy, скорость доступа будет увеличена в 10 и более раз. С учетом текущей распределенной платформы требуется так много обмена данными, поэтому также требуется простое программирование и высокая производительность. Я знаю, что буфер протокола также можно использовать в качестве механизма сериализации, однако я не уверен насчет сравнения производительности между Boost.serialization и буфером протокола. Другая проблема заключается в том, существуют ли какие-либо более эффективные решения для обеспечения более высокой производительности поставщика, близкой к memcpy?

Спасибо

1 Ответ

1 голос
/ 25 марта 2009

Кто-то задал очень похожий вопрос: Производительность сериализации C ++

Похоже, что протоколные буферы - хороший путь, хотя, не зная требований ваших приложений, трудно рекомендовать какую-либо конкретную библиотеку или методику.

...