Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 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. Тому, якщо серіалізація використовується у сценаріях, таких як кеш, і серіалізований об'єкт потрібно зберігати довго, можна обрати лише protostuff.

Звісно, якщо потрібна читабельність чи щось подібне, можна використовувати лише json.




Попередній:asp.net Налаштувати назву ідентифікатора сесії
Наступний:Порівняння продуктивності Protobuf і JSON на платформі .NET
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com