вторник, 26 августа 2014 г.

[prog.flame] Слайд для любителей использовать XML/JSON/YAML

Найден в презентации OMG DDS Tutorial Part II:

Т.е. по сравнению с бинарным представлением CDR (используемым в CORBA) текстовые форматы могут давать увеличение объема до 10 раз и снижение производительности до 20 раз.

Данные, которые отображены на этом слайде, взяты из этой презентации, в которой описываются результаты экспериментов с несколькими форматами данных. Эксперименты эти проводились из-за необходимости поддерживать версионность данных (т.е. когда в последующих версиях структура данных может изменяться, как правило, расширяться новыми полями).

Как я понимаю, CORBA и DDS не поддерживают версионности, поэтому решили попробовать что-то еще. Только вот не понятно, почему не попробовали хотя бы ASN.1 с его extension point-ами. К сожалению, я не помню, был ли Google Protobuf в 2008-м, но мы у себя в 2008-м уже года четыре как использовали собственную ObjESSty, которая, как и ASN.1 BER/PER, сериализовала данные в двоичное представление, да еще и поддерживала версионность данных. Т.е. в очередной раз убеждаюсь, что многие вещи мы на интуитивном уровне делали правильно, но вот выбраться из своего маленького гаражика со своими идеями не смогли :) Кстати говоря, в библиотеке MBAPI, которая добавляет возможность строить распределенные приложения на основе SObjectizer-а, для сериализации используется именно ObjESSty, так что в MBAPI нет проблем с расширением сообщений новыми полями, в отличии от DDS...

PS. Еще одна заметка на счет эффективности XML из моего блога.

Комментариев нет: