Двоичная сериализация против JSON против XML

Кто-нибудь знает, каков примерный прирост производительности с точки зрения времени при использовании двоичной сериализации по сравнению с JSON по сравнению с xml и отправке данных по сети при условии, что структуры данных имеют много небольших (строковых) полей?

В какой степени сериализатор отвечает за производительность? Что с языком программирования?

Идеальный сценарий — это тот, в котором мы игнорируем проблемы переносимости и предполагаем, что у нас есть библиотеки, необходимые для сериализации/десериализации во все 3 формата и из них.


person Clara    schedule 13.11.2012    source источник
comment
Лучший способ узнать? Проверьте это на себе. Все, что кто-либо ответит здесь, будет основано на их требованиях и потребностях, которые могут не совпадать с вашими собственными.   -  person Oded    schedule 13.11.2012
comment
Это зависит от очень многих вещей, на ваш вопрос невозможно ответить, кроме как сказать: в большинстве случаев формат сериализации не является узким местом производительности.   -  person hyde    schedule 13.11.2012
comment
Тогда что бы вы назвали самыми большими узкими местами в производительности?   -  person Clara    schedule 13.11.2012
comment
Да, невозможный вопрос для ответа... Избегая проблем с производительностью, следующий ответ посвящен тому, почему используются альтернативные форматы, такие как XML + JSON: stackoverflow.com/questions/10368343/   -  person Mark O'Connor    schedule 13.11.2012


Ответы (1)


Адекватно ответить на ваш вопрос невозможно, потому что это зависит от ваших конкретных требований и потребностей.

В некотором смысле можно сказать, что объем данных, используемых для описания сериализованного представления, влияет на производительность.

Например, документу XML потребуются открывающие и закрывающие теги, такие как ..., в то время как JSON будет достаточно с prop1:"...", что уменьшает количество символьных данных, необходимых для описания экземпляра. Binary может даже пропустить именование свойств, что еще больше сократит объем данных, необходимых для описания сериализованного экземпляра.

Хотя может показаться, что двоичная сериализация будет самой быстрой, это не всегда так. Это зависит от того, сколько времени требуется сериализатору для перехода от экземпляра объекта к сериализованному описанию.

Если вам действительно нужна производительность, вам следует взглянуть на буферы протокола Google. По моему опыту, они молниеносны и довольно просты в использовании.

person Christiaan Nieuwlaat    schedule 14.11.2012