Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 14559|Ответ: 0

[Источник] Сериализация Java kryo/protobuf/protostuff или сравнение производительности JSON

[Скопировать ссылку]
Опубликовано 15.07.2019 21:16:23 | | |
Для сериализации Java-объекта я хотел бы проверить разницу между использованием JSON и общими инструментами сериализации с точки зрения временной и пространственной производительности.

JSON выбирает FastJSON.

Инструмент сериализации использует Protostuff и Kyro. Почему бы не использовать протобуф? Потому что я считаю, что для Java-класса с сотнями существующих свойств создание нового совпадающего прототипного файла — это немного античеловеческо. Protostuff — это усовершенствованная версия Protobuf, которая позволяет сериализировать Java-объект напрямую, используя его в немногом похожем на Kyro, без столько промежуточных процессов, как Protobuf. Другие, такие как Hession, Java с сериализацией и т.д., говорят, имеют гораздо худшую производительность, чем Kryo и Protobuf, так что я не знаю, чего ожидать.

После простого теста я обнаружил, что разрыв был довольно заметен, поэтому решил, что нет необходимости проводить конкретную оценку. Вырежьте абзац из журнала и отправьте его — все это почувствуют.

стоимость времени равна System.nanoTime(); Все три — стандартные конфигурации без какой-либо конфигурации.
Космический след после сериализации немного меньше, чем у protostuff, и оба значительно выше, чем у JSON. Это легко понять, ведь строки JSON читаемы, не навязывают слишком сильно.
Время, необходимое для сериализации и десериализации, лучше, чем у Kyro, чем на FastJSON, и разница довольно очевидна.

Итак, в заключение, если нет крайне требовательных требований к пространству, Protostuff может быть лучшим выбором. Protostuff имеет дополнительное преимущество перед Kyro: если java-класс добавляет поля после сериализации и до десериализации (что неизбежно в реальном бизнесе), Kyro будет бесполезен. Однако прототип можно использовать, если он добавлен в конце класса и использует JDK серии Sun Series. Поэтому, если сериализация используется в таких ситуациях, как кэш, и сериализированный объект нужно хранить долго, можно выбрать только protostuff.

Конечно, если нужна читаемость или что-то подобное, можно использовать только json.




Предыдущий:asp.net Настраивайте имя идентификатора сессии
Следующий:Сравнение производительности Protobuf и JSON на платформе .NET
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com