Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 14559|Risposta: 0

[Fonte] Serializzazione Java kryo/protobuf/protostuff o confronto delle prestazioni JSON

[Copiato link]
Pubblicato su 15/07/2019 21:16:23 | | |
Per la serializzazione di un oggetto Java, vorrei testare la differenza tra l'uso di JSON e l'uso di strumenti generali di serializzazione in termini di prestazioni temporali e spaziali.

JSON sceglie di usare fastjson.

Lo strumento di serializzazione utilizza Protostuff e Kyro. Perché non usare il protobuf? Perché penso che per una classe Java con centinaia di proprietà esistenti, creare un nuovo proto file corrispondente sia un po' anti-umano. Protostuff è una versione migliorata di Protobuf, che permette di serializzare direttamente un Oggetto Java, usandolo un po' come Kyro, ma senza tanti processi intermedi come Protobuf. Altri, come Hession, Java con serializzazione, ecc., si dice abbiano prestazioni molto peggiori rispetto a Kryo e Protobuf, quindi non so cosa aspettarmi.

Dopo un semplice test, ho scoperto che il divario era piuttosto evidente, quindi ho sentito che non c'era bisogno di fare una valutazione specifica. Taglia un paragrafo del registro e mandalo fuori, tutti lo sentono.

il tempo di costo è System.nanoTime(); Tutte e tre sono le configurazioni predefinite senza alcuna configurazione.
L'impronta di spazio dopo la serializzazione è leggermente inferiore a quella del protostuff, e entrambi sono molto più alti rispetto al JSON. È facile da capire, dopotutto, le stringhe json sono leggibili, non forzare troppo.
Il tempo necessario per la serializzazione e la deserializzazione è migliore rispetto a Kyro su FastJSON, e la differenza è piuttosto evidente.

Quindi, in conclusione, se non ci sono requisiti estremamente impegnativi per lo spazio, Protostuff potrebbe essere la scelta migliore. Protostuff ha un vantaggio aggiuntivo rispetto a Kyro, cioè se la classe Java aggiunge campi dopo la serializzazione e prima della deserializzazione (cosa inevitabile nel business reale), Kyro sarà inutile. Tuttavia, il protostuff può essere usato purché venga aggiunto alla fine della lezione e utilizzi la serie Sun JDK. Pertanto, se la serializzazione viene utilizzata in scenari come la cache, e l'oggetto serializzato deve essere memorizzato a lungo, puoi scegliere solo protostuff.

Ovviamente, se c'è bisogno di leggibilità o altro, puoi usare solo json.




Precedente:asp.net Personalizza il nome dell'id sessione
Prossimo:Confronto tra le prestazioni di Protobuf e JSON sulla piattaforma .NET
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com