Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 14559|Svare: 0

[Kilde] Java kryo/protobuf/protostuff-serialisering eller JSON-ytelsessammenligning

[Kopier lenke]
Publisert på 15.07.2019 21:16:23 | | |
For serialisering av et Java-objekt ønsker jeg å teste forskjellen mellom å bruke JSON og å bruke generelle serialiseringsverktøy når det gjelder tidsmessig og romlig ytelse.

JSON velger å bruke fastjson.

Serialiseringsverktøyet bruker Protostuff og Kyro. Hvorfor ikke bruke protobuf? For jeg føler at for en Java-klasse med hundrevis av eksisterende egenskaper, er det litt anti-menneskelig å lage en ny matchende proto-fil. Protostuff er en forbedret versjon av Protobuf, som lar deg serialisere et Java-objekt direkte, ved å bruke det litt som Kyro, uten like mange mellomliggende prosesser som Protobuf. Andre, som Hession, Java med serialisering, osv., sies å ha mye dårligere ytelse enn Kryo og Protobuf, så jeg vet ikke hva jeg kan forvente.

Etter en enkel test fant jeg ut at gapet var ganske åpenbart, så jeg følte at det ikke var behov for en spesifikk vurdering. Klipp ut et avsnitt av loggen og send det ut, alle kjenner på det.

kostnadstid er System.nanoTime(); Alle tre er standardkonfigurasjonene uten noen konfigurasjon.
Plassavtrykket etter serialisering er litt lavere enn for protostuff, og begge er mye høyere enn JSON. Dette er lett å forstå, tross alt er json-strengene lesbare, ikke tving for mye.
Tiden som kreves for serialisering og deserialisering er bedre enn for Kyro sammenlignet med FastJSON, og forskjellen er ganske tydelig.

Så for å konkludere, hvis det ikke er ekstremt krevende krav til plass, kan Protostuff være det beste valget. Protostuff har en ekstra fordel over Kyro, nemlig at hvis java-klassen legger til felt etter serialisering og før deserialisering (noe som er uunngåelig i praksis), vil Kyro være ubrukelig. Protostuff kan imidlertid brukes så lenge det legges til på slutten av klassen og bruker sun series JDK. Derfor, hvis serialisering brukes i scenarioer som cache, og det serialiserte objektet må lagres lenge, kan du bare velge protostuff.

Selvfølgelig, hvis det er behov for lesbarhet eller lignende, kan du bare bruke json.




Foregående:asp.net Tilpas navnet på økt-ID-en
Neste:Sammenligning av Protobuf og JSON-ytelse under .NET-plattformen
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com