Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 14559|Отговор: 0

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

[Копирай линк]
Публикувано в 15.07.2019 г. 21:16:23 ч. | | |
За сериализацията на Java обект бих искал да тествам разликата между използването на JSON и използването на общи инструменти за сериализация по отношение на времевата и пространствената производителност.

JSON избира да използва fastJSON.

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

След прост тест установих, че разликата е доста очевидна, затова почувствах, че няма нужда от конкретна оценка. Изрежи един параграф от дневника и го изпрати – всички го усещат.

cost time е System.nanoTime(); И трите са стандартни конфигурации без никаква конфигурация.
Космическият отпечатък след сериализацията е малко по-нисък от този на protostuff, и двата са много по-големи от JSON. Това е лесно за разбиране, все пак JSON низовете са четливи, не натоварват прекалено много.
Времето, необходимо за сериализация и десериализация, е по-добро от това на Kyro спрямо FastJSON, и разликата е доста очевидна.

В заключение, ако няма изключително високи изисквания за пространство, Protostuff може да е най-добрият избор. Protostuff има допълнително предимство пред Kyro, а именно, ако java класът добавя полета след сериализацията и преди десериализацията (което е неизбежно в реалния бизнес), Kyro ще бъде безполезен. Въпреки това, protostuff може да се използва, стига да се добави в края на класа и да използва слънчевата серия JDK. Следователно, ако сериализацията се използва в сценарии като кеш и сериализираният обект трябва да се съхранява дълго време, можете да изберете само protostuff.

Разбира се, ако има нужда от четливост или нещо подобно, можеш да използваш само json.




Предишен:asp.net Персонализиране на името на идентификатора на сесия
Следващ:Сравнение на производителността на Protobuf и JSON под .NET платформата
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com