Я проверил производительность PB с рядом других форматов данных (xml, json, сериализация объектов по умолчанию, гессиан, один проприетарный) и библиотеками (jaxb, fast infoset, рукописный) для задачи связывания данных (как чтение, так и запись), но формат (ы) комиссионных не был включен. Производительность для форматов с несколькими конвертерами (например, xml) сильно отличалась от очень медленной до чертовски быстрой. Корреляция между претензиями авторов и воспринимаемым исполнением была довольно слабой. Особенно это касается упаковок, которые предъявляют самые смелые претензии.
Для чего бы это ни стоило, я обнаружил, что производительность PB немного завышена (обычно не ее авторами, а теми, кто знает только, кто ее написал). С настройками по умолчанию он не побил быструю текстовую альтернативу xml. С оптимизированным режимом (почему это не по умолчанию?) Он был немного быстрее, сравнимым с самым быстрым пакетом JSON. Гессиан был довольно быстр, текстовый JSON тоже. Правильный двоичный формат (здесь нет названия, это была компания) был самым медленным. Сериализация Java-объектов была быстрой для больших сообщений, в меньшей степени - для небольших объектов (то есть высокий фиксированный размер для каждой операции).
С PB размер сообщения был компактным, но с учетом всех компромиссов, которые вы должны сделать (данные не являются самоописательными: если вы теряете схему, вы теряете данные; конечно, есть индексы и типы значений, но из того, что у вас есть если вы хотите вернуться к именам полей, я лично выбрал бы его только для конкретных случаев использования - чувствительной к размеру, тесно связанной системы, в которой интерфейс / формат никогда (или очень очень редко) не меняется.
Мое мнение в этом заключается в том, что (а) реализация часто имеет большее значение, чем спецификация (формата данных), (б) сквозная связь, различия между лучшими в своем классе (для разных форматов) обычно недостаточно велики диктовать выбор.
То есть вам лучше выбрать формат + API / lib / framework, который вам больше всего нравится (или имеет лучшую поддержку инструментов), найти лучшую реализацию и посмотреть, работает ли он достаточно быстро.
Если (и только если!) Нет, рассмотрите следующую лучшую альтернативу.
пс. Не уверен, что EJB3 здесь будет. Может быть, просто сериализация Java?