Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 14559|Svar: 0

[Kilde] Java kryo/protobuf/protostuff serialisering eller JSON ydelsessammenligning

[Kopier link]
Opslået på 15/07/2019 21.16.23 | | |
For serialisering af et Java-objekt vil jeg gerne teste forskellen mellem at bruge JSON og at bruge generelle serialiseringsværktøjer med hensyn til tidsmæssig og rumlig ydeevne.

JSON vælger at bruge fastjson.

Serialiseringsværktøjet bruger Protostuff og Kyro. Hvorfor ikke bruge protobuf? For jeg synes, at for en Java-klasse med hundredvis af eksisterende egenskaber er det lidt anti-menneskeligt at oprette en ny matchende proto-fil. Protostuff er en forbedret version af Protobuf, som gør det muligt at serialisere et Java-objekt direkte, ved at bruge det lidt ligesom Kyro, uden så mange mellemliggende processer som Protobuf. Andre, såsom Hession, Java med serialisering osv., siges at have meget dårligere ydeevne end Kryo og Protobuf, så jeg ved ikke, hvad jeg kan forvente.

Efter en simpel test fandt jeg ud af, at hullet var ret tydeligt, så jeg følte, at der ikke var behov for en specifik evaluering. Klip et afsnit af loggen og send det ud, alle mærker det.

omkostningstid er System.nanoTime(); Alle tre er standardkonfigurationerne uden nogen konfiguration.
Pladsaftrykket efter serialisering er en smule lavere end for protostuff, og begge er meget højere end JSON. Det er let at forstå, for json-strenge er læsbare, tving ikke for meget.
Den tid, der kræves til serialisering og deserialisering, er bedre end Kyro sammenlignet med FastJSON, og forskellen er ret tydelig.

Så afslutningsværdigt, hvis der ikke er ekstremt krævende pladskrav, kan Protostuff være det bedste valg. Protostuff har en ekstra fordel over Kyro, nemlig at hvis java-klassen tilføjer felter efter serialisering og før deserialisering (hvilket er uundgåeligt i reel forretning), vil Kyro være ubrugelig. Dog kan protostuff bruges, så længe det tilføjes i slutningen af klassen og bruger sun series JDK. Derfor, hvis serialisering bruges i scenarier som cache, og det serialiserede objekt skal opbevares i lang tid, kan du kun vælge protostuff.

Selvfølgelig, hvis der er behov for læsbarhed eller lignende, kan du kun bruge json.




Tidligere:asp.net Tilpas sessions-id'et
Næste:Sammenligning af Protobuf og JSON-ydelse under .NET-platformen
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com